何よりもまず、入力テキストに含まれる「境界」に関する情報を保持するようにしてください。
(そのような情報がすぐに失われない場合、あなたの質問はトークン化が容易に行われた可能性があることを意味します)トークン化 (この場合は単語の解析) プロセス中に、表現の境界を定義する可能性のあるパターン(句読点、特にピリオドなど
) を探します。 、および複数の LF/CR 分離にも、これらを使用します. また、「the」のような単語は、しばしば境界として使用できます. そのような式の境界は、通常、確実に分離されない2 つのトークンインスタンスを分離するという意味で「否定的」です.同じ表現に含まれます。いくつかの正の境界は引用符、特に二重引用符です。このタイプの情報は、一部の n グラムを除外するのに役立つ場合があります (次の段落を参照)。また、「たとえば」、「代わりに」、「必要」などの単語シーケンスも表現の境界として使用できます(ただし、このような情報を使用すると、後で説明する「事前」を使用することになります)。
外部データ (入力テキスト以外) を使用しなくても、テキストのディグラムとトリグラム(2 語と 3 語の連続)の統計を実行することで、比較的うまくいく可能性があります。その場合、[ほとんど] かなりの (*) 数のインスタンスを持つシーケンスが、探している「式/フレーズ」のタイプである可能性があります。
このやや大雑把な方法では、いくつかの誤検知が発生しますが、全体としては実行可能です。最初の段落で示唆されているように、「境界」を越えることが知られている n-gram をフィルタリングすると、非常に役立つ可能性があります。自然言語では、文の終わりと文の開始がメッセージ空間の限られたサブセットから引き出される傾向があるため、トークンの組み合わせが生成される可能性があるためです。統計的にはよく表されているように見えますが、通常は意味的に関連していません。
より良い方法(おそらくより高価で、処理面、および設計/投資面で) は、入力テキストのドメインおよび/または各国語に関連する追加の「前置詞」を使用します。
- POS (品詞) タグ付けは、いくつかの点で非常に便利です (追加の、より客観的な表現境界を提供し、「ノイズ」単語クラス、たとえばすべての記事など、エンティティのコンテキストで使用される場合でも、通常はほとんどありません) OPが作成したいタグクラウドで。
- 辞書、レキシコンなども非常に役立ちます。特に、「エンティティ」( WordNet用語ではインスタンス) とその代替形式を識別するものです。エンティティはタグ クラウドにとって非常に重要であり (エンティティに含まれる単語のクラスはエンティティだけではありません)、それらを識別することで、エンティティを正規化することもできます (たとえば、「T 上院議員.したがって、重複を排除しますが、基礎となるエンティティの頻度も増やします。
- コーパスがドキュメント コレクションとして構造化されている場合、TF (Term Frequency) および IDF (Inverse Document Frequency) に関連するさまざまなトリックを使用すると役立つ場合があります。
[申し訳ありませんが、今は行かなければなりません (さらに、具体的な目標などの詳細を教えてください)。後で詳細とポイントを提供しようとします]
[ところで、この投稿からのジョナサン・ファインバーグとダービン・サンクの回答をここに挿入したいと思います。彼らは、目の前の種類のタスクの方法とツールに関して優れた指針を提供するからです. 特に、NTLKと大規模な Python は、実験のための優れたフレームワークを提供します]