自然言語処理。 便利なツール

最近、自然言語処理に関する記事がHabréで頻繁に取り上げられています。

そしてつい最近、私はこの分野で仕事をしているようになりました。

感情分析 、および発話の変身のタガーは非常によく照らされていました。

しかし、NLPに使用したツールと、ここにはまだない新しいツールを紹介します。



まず、非常に便利なnltkに言及している人がいないことに驚きました。 特にロシア語に興味がなく、他のヨーロッパ言語に興味がある場合。 スキルの中で





そして最も重要なこと-素晴らしい料理本の初心者向けガイド。 さらに、エントリーのしきい値は非常に低く、すべてが本で詳細に噛まれているため、Python自体を知る必要さえありません。 しかし、英語なしではできません。 あなたが確かに言語を知っていれば、 日本語に翻訳するための本当に別のオプションがあります。 実際、日本語で作業する場合、特にnltkは、ヒエログリフで言語を解析するために非常に役立つ章があります。



一般に、上記のすべてはRussian辱的なロシア語では機能しません。 nltkクックブックをロシア語に翻訳するプロセスがあります。それについて読んでGoogleグループで助けてください



しかし、インターネットで見つけた最大の宝物はフリーリングです



フリーリングはワードプロセッシングライブラリです。 C ++で記述されているため、速度が優れています。 また、すべての(またはほぼすべての)言語のAPIを備えています。



FreeLingの主な機能:





現在、スペイン語、カタロニア語、ガリシア語、イタリア語、英語、ロシア語、ポルトガル語、ウェールズ語がサポートされています。 残念ながら、ロシア語はごまかされ、エンティティの認識と分類は機能しませんが、箱から出した品詞の定義はすでに非常に優れています。 異教間主義についての詳細。

私が一番驚いたのは、 ロシア語には良いマニュアルがあるにもかかわらず、Runeでフリーリングに関する言及がほとんどなかったことです。



なぜこれらのツールが役立つのですか?

タスクは、テキストをあるカテゴリまたは別のカテゴリに割り当て、さらに自動的に割り当てることでした。 これを行うために、最初のテキストに手作業でタグを付けて分類しました(コーパスと呼ぶことは困難です)。 新しいテキストはすでに自動的に解析されており、最初にRegExpが辞書の必要なタグを強調表示します。 次に、フリーリングを使用してテキストを展開しました。これには、トークン化と品詞への解析が含まれます。 そして、この形式で保存されました。



次のステップは、カテゴリごとに独自の分類器がトレーニングされたことで、その時までに分類のトピックに非常に表面的に精通していました(記事についてはIrokezに感謝します)。 このために、最初にnltkのNaive Bayes分類器が渡されたという事実をパラメーター(機能)として使用し、一度に1つの単語(unigram)とタグを渡しましたが、タグの数は2倍になりました。不可能ですが、タグは単純な単語よりもはるかに有益です。 また、代名詞、数字、間投詞(感情的な色は重要ではない)など、不要な単語を除外するために品詞が使用されました。



UPD。 kmikeからscikit-learn.org/をこのリストに追加することもできます-これは、機械学習に必要なほぼすべてを含むライブラリです:多くの異なる分類子(適切な実装など)、tf-idfカウント、cythonがあります-HMMの実装(githubからのdevバージョンで)など



All Articles