0

皆さん。元のコーパスの最大文章を含む文章コーパスの最小文章を取得するにはどうすればよいですか?

私は1つの「最適化」問題を抱えています。どのような方法で立ち上げるべきかわかりません。ここに私の問題の説明があります:

私はたくさんのテキストセンテンスを持つコーパスを持っています。今では、録音する文章(オーディオファイル)を最小限にする必要がありますが、録音された文章から作成された元のコーパスの文章の数を最大にする必要があります。

私は何をする必要があるかの非常に短い例に:

コーパス:

  • 黒い犬
  • 灰色猫
  • 大きな犬
  • 大きな灰色のマウス
  • マウス

元コーパスの最大値をカバーする最小の文の例:

  • 黒い犬
  • 大きいマウス
  • グレー猫

3つの文章(およびそれらの言葉から)以上であれば、残りの文章をコーパスに書くことができます。もちろん、私のコーパスには何千もの文が含まれているため、計算上最適な方法を探しています。あなたはこの問題に適した方法を知っていますか?

ありがとうございました!

Morphid

+0

コーパスでもっと多くの単語をカバーするために、あなたが最小限のリストで余分な単語を交換する意志を指定するためにここに余分なパラメータが必要なようです。例えば、なぜ "黒犬のマウス"ではないのですか? – samgak

+1

セットカバーの問題のような音:https://en.wikipedia。org/wiki/Set_cover_problem – m69

+0

あなたの答えをありがとう:-) @samgak私は自分の書式を保持する必要があるため、私のコーパスから正確なフレーズを記録する必要があります(将来の実験のために、コーパス) – Morphid

答えて

0

コーパスは、あなたが示すように簡単です、あなたは本当に文章を作成する必要がない場合は、あなただけのユニグラムを計算することができます。もっと複雑な場合は、トピックモデリングのフォームを実行します。トピックモデリングはコーパス全体で共通の単語を返します。コーパスを文書のセットに入れる必要があります。あなたのケースでは、それぞれの「文書」が文章になる可能性があります。良いトピックモデリングアルゴリズムは、潜在的なディリクレ割り当て(LDA)と呼ばれます。

LDAに関する技術論文については、Latent Dirichlet Allocationを参照してください。

gensimライブラリを使用したサンプルPythonコードの記事は、Experiments on the English Wikipediaを参照してください。

次の記事およびサンプルコードは、Jordan Barber(Latent Dirichlet Allocation (LDA) with Python)が、NLTKを使用してLDAのコーパスとgensimを作成します。このコードは、Wikipediaコード以外のアプリケーションにも適しています。

+0

ありがとうございました!あなたが言及したように、ユニグラムは私が持っているデータの場合は十分かもしれませんが、LDAは私にとって興味深いので、もっと探求してそれを適用しようとします。ありがとう。 – Morphid

関連する問題