2017-06-07 14 views
0

私は、英語でコミュニケーションする方法に基づいて、その人の国籍を特定するプロジェクトに取り組んでいます。私は10の国籍を持っています& 1000ファイル、各国籍ごとに100。私は、私のアプローチを検証するために、機能としてN-gramを使用しています。&マルチラベル分類にn-gramを使用するには?

  1. が与えられたため、すべてのファイルをピックアップ:(行として)ラベルとして&国籍を特徴として私のデータ構造は、私のステップである(列などの文字nグラム、バイグラム、)異なるnグラムを持っているでしょう国籍(FINE)。 1.1。それらを組み合わせてテキストコーパスを形成する(例えば、100のファイルを1つの大きなファイルに結合する)。私は当初、一度に1つのファイルを取ることを考えました&出現に基づいてnグラムの数を更新しました。しかし、それぞれの新しいnグラムについて、私はそれがすでに発生しているかどうかを調べる必要があります&は、与えられたラベルのためにその頻度を更新します。これはより良いアプローチでしょうか?
  2. バイグラム/トライグラムの抽出&各グラムの頻度を取得します。 (NLTKにはそれぞれ数を与えるFreqDistがあります)
  3. この情報を保存するので、テストセットを分類するために使用します。 (どのように私はこの情報を格納するようにしてください。次の詳細を)

質問Iは、(マトリックス中にnグラム&周波数情報を格納する必要があり、各ラベルの全てのnグラム&ラベルまたは別個のマトリックスを有する単一マトリックス)、または地図として保存する必要があります(ラベルごとに、N-gram &の頻度カウントを持つ地図)。私は、抽出された情報を格納するためのデータ構造を持っていて、入力として&を処理するために分類器が使いやすいようにしたいと考えています。私は、どのデータ構造がより良い選択肢になるかは予見できません。

答えて

1

1)重要ではありません。別にそれを行い、それをマージする方法があれば、将来的には分散システム(通常はmap-reduceアプローチと呼ばれています)に拡大したい場合に役立ちます。

2)ok。

3)nグラムと頻度カウントは、通常、フィーチャ分類には適していません。ラベルごとに別々のマトリックス/マップを用意し、TF-IDF(https://en.wikipedia.org/wiki/Tf%E2%80%93idf)のようなものを使用して、特定のラベルの特徴であるnグラムを識別したいと思うでしょう。

4)分類については、前の手順でラベルごとに識別されたngramのサブセットを選択し、トレーニングと分類に使用する固定長ベクトルを作成します。あなたはおそらくカウントのために何らかの種類の正規化を必要とするでしょう。

関連する問題