第1章: Polyglotとは
Polyglotは、Pythonで自然言語処理を行うための強力なライブラリです。多言語に対応し、様々な言語処理タスクを簡単に実行できます。
第2章: Polyglotのインストール
まず、Polyglotをインストールしましょう。以下のコマンドを使用します。
pip install polyglot
依存ライブラリもインストールする必要があります。
pip install pyicu pycld2 morfessor
第3章: 言語検出
Polyglotを使って、テキストの言語を自動的に検出できます。
from polyglot.detect import Detector
text = "こんにちは、世界!Hello, world!"
detector = Detector(text)
print(detector.language.name)
このコードは、テキストに含まれる主要な言語を検出します。
第4章: トークン化
テキストをトークン(単語や文字)に分割する機能を見てみましょう。
from polyglot.text import Text
text = Text("吾輩は猫である。名前はまだ無い。")
print([word for word in text.words])
この例では、日本語のテキストを単語に分割しています。
第5章: 品詞タグ付け
Polyglotは品詞タグ付けもサポートしています。
from polyglot.text import Text
text = Text("I love programming in Python.", language="en")
print([(word.string, word.pos) for word in text.words])
英語のテキストに対して品詞タグを付けています。
第6章: 固有表現抽出
テキストから固有表現(人名、地名、組織名など)を抽出できます。
from polyglot.text import Text
text = Text("バラク・オバマはアメリカ合衆国の第44代大統領です。")
for entity in text.entities:
print(entity)
このコードは日本語のテキストから固有表現を抽出します。
第7章: 感情分析
Polyglotを使って、テキストの感情を分析することができます。
from polyglot.text import Text
text = Text("私はPythonが大好きです!", language="ja")
print(text.polarity)
このコードはテキストのポジティブ/ネガティブの度合いを数値で表します。
第8章: 多言語対応
Polyglotの強みは多言語対応です。以下は複数の言語でのトークン化の例です。
from polyglot.text import Text
texts = [
Text("Hello, how are you?", language="en"),
Text("Bonjour, comment allez-vous?", language="fr"),
Text("こんにちは、お元気ですか?", language="ja")
]
for text in texts:
print(f"Language: {text.language.name}")
print([word for word in text.words])
print()
第9章: 翻訳
Polyglotには簡単な翻訳機能も備わっています。
from polyglot.translate import Translator
translator = Translator()
text = "Hello, world!"
translated = translator.translate(text, target_language="ja")
print(translated)
この例では英語から日本語への翻訳を行っています。
第10章: 形態素解析
日本語の形態素解析も可能です。
from polyglot.text import Text
text = Text("私は昨日公園に行きました。", language="ja")
print([(word.string, word.pos) for word in text.words])
このコードは日本語のテキストを形態素に分解し、品詞情報を付与します。
第11章: 文字種の判定
Polyglotを使って文字種を判定することができます。
from polyglot.text import Text
text = Text("Hello こんにちは 123")
for char in text.unicodes:
print(f"{char}: {char.script}")
この例では、テキスト中の各文字がどの文字体系に属するかを判定しています。
第12章: 言語モデルの利用
Polyglotには簡単な言語モデル機能があります。
from polyglot.text import Text
text = Text("The cat is sitting on the", language="en")
print(text.word_probabilities[-1])
この例では、文の最後の単語の確率分布を表示します。
第13章: 文字のエンコーディング変換
Polyglotを使って文字のエンコーディングを変換できます。
from polyglot.text import Text
text = Text("こんにちは", language="ja")
print(text.encode("utf-8"))
print(text.encode("shift-jis"))
このコードは日本語のテキストを異なるエンコーディングに変換します。
第14章: 複数言語の混在テキストの処理
Polyglotは複数の言語が混在するテキストも処理できます。
from polyglot.text import Text
text = Text("Hello こんにちは Bonjour")
for word in text.words:
print(f"{word}: {word.language}")
この例では、混在するテキストの各単語の言語を判定しています。
第15章: カスタムモデルの利用
Polyglotでは、カスタムモデルを利用することもできます。
from polyglot.text import Text
from polyglot.downloader import downloader
downloader.download("embeddings2.ja")
text = Text("私はPythonが好きです", language="ja")
print(text.embeddings)
この例では、日本語の単語埋め込みモデルをダウンロードし、テキストの埋め込み表現を取得しています。
以上が、Polyglotの主要な機能と使用方法の概要です。Polyglotを使うことで、多言語対応の自然言語処理タスクを簡単に実行できます。日本語を含む様々な言語のテキスト処理に役立つツールとして、ぜひ活用してみてください。