テキスト分類(B)|(1)プロジェクト

テキスト分類(b)はGithubの列主に主にTextCNN、TextRNN、FastText、TextRCNN、BiLSTM_Attention、DPCNN、変圧器、使用PyTorch達成など、深い学習モデルに基づいて、優れたテキスト分類プロジェクト、テキスト分類プロジェクトを、解決します。

ディレクトリ

1.プロジェクトの特長

2.データ収集

3.プロジェクト組織

4.使用


1.プロジェクトの特長

テキスト分類(A)と比較すると、それは主に次のような違いがあります。

1)異なるデータ前処理を提供します。テキスト分類()私たちは、データのそれぞれは、完全なニュースであるチャプターの分類に属し、THUCNews完全なデータセットを使用している、テキスト分類(b)は、私たちは各データのTHUCNewsのサブセットを使用しているからですニュースタイトルが(短いテキスト)の分類に属し、タイトルを抽出しました。今、私たちは前処理と同時に、トレーニング、前処理データの完了に続いて、我々が先にデータ前処理、ストレージアレイまたはテンソル形式、訓練の、その後もファイル、大量のデータのためのケースからロードされる前に、訓練は、中間ファイル、データの少量の場合のように格納される必要はありません。

2)データ生成:データは1回のデータへのすべての方法は、メモリ内で、大きさではないか、メモリにロードされたとき、私たちはデータ・ジェネレータを使用することができます。訓練は、そのデータのどこの部分(バッチ)と、メモリやビデオメモリにロードされたすべてのデータを持っていない場合は、データ・ジェネレータによって生成されたデータの一部に、これは、データの一部のみがメモリまたはビデオメモリにロードされていますオーバーフローを避けます。テキストの分類()、我々は(PyTorchが建て)、その後、前処理されたDataSetオブジェクトのデータをカプセル化し、ロードされたデータローダーを使用したい、テキスト分類(b)は、私たちのカスタムデータジェネレータ/イテレータ。

3)辞書/辞典構造方法:テキストを扱うとき、私たちは、あなたが最初の辞書/辞典のデータ構造に基づいて、低周波の単語/単語、ストップワード/ワード)を削除することができます(する必要があります。我々はKerasを使用哲学的カップを内蔵し、そのような私たちはトークナイザ辞書/辞典の構築を支援するなどの機能;テキスト分類(b)の一方の構築物では、当社のカスタム辞書をテキスト分類()私たちは、辞書/辞典は、ヘルプビルドにTorchTextの語彙機能を使用します道の/辞典。そして、辞書や辞書のインデックスにテキストの単語または語句。

4)テキスト分類(ii)のそれは主に、文字レベルに基づいて、単語のテキストはもちろん、間隔を分割し、バージョン単語レベルを提供され、主に単語レベルに基づいて、テキスト分類()、単語毎にテキストスプリット(例えばjiebaとして、いくつかのセグメンテーションツールを使用する必要があります)。

5)コマンドラインツール:テキスト分類()プロジェクトのすべての関連するパラメータは、スーパーコンフィギュレーションを変更するために、単一のファイルに集中している、火災のツールを使用して、コマンドラインで上書きすることができ、テキスト分類(ii)は、ツールの使用はargparseです各モジュールは、モジュールの超パラメータ(hyperparametricモデルの定義とファイル内で定義される)を含むクラスに対応した構成を有しています。

6)モデルを使用する:使用されるモデルのテキスト分類()とテキスト分類(B)は、深さに基づいて、学習モデルの一部と同様です。そのテキスト分類(II)以外FastTextモデルは、バイグラム、トライグラムの機能を増加させ、(トランスエンコーダ分類を使用して)トランスモデルを増大させます。

上記もちろん、いくつかのブログで、私を詳述した後、いくつかのコーディングスタイルの違いや、特定の詳細のいくつかは、そこにある、二つのプロジェクトの主な違いです。関連するプロジェクトのマルチ決意数、この地域の我々の理解を深めことができるだけでなく、あなたはまた、いくつかの異なるコーディングスタイルを持つことができ、プログラミングは、私たちは状況に応じてより多くのオプションを持つことができ、より柔軟、かつ理解しやすくなることができます他の優れたオープンソースコード。

 

2.データ収集

ニュースの見出しにTHUCNewsに描かれた20ワットは、テキストの長さは、20〜30の間で10のカテゴリ、各カテゴリ20000の合計です。

カテゴリー:金融、不動産、株式、教育、科学技術、社会、政治、スポーツ、ゲーム、エンターテインメント。

18Wのトレーニングセット(カテゴリにつき18,000)、各テストセットと検証セット1W(各カテゴリ1000):へのデータセット。

 

3.プロジェクト組織

1)モデル:各モデルの定義とそれぞれのスーパーで定義されたパラメータ

2)THUCnews /データ:記憶訓練セット、検証セット、TXTフォーマットに加工テストセット(フォームの各データ線:テキスト<タブ>タグ);構築辞書/辞書、事前訓練ベクトル単語/単語ベクトル(あなた自身が)、それはまた、トレーニングデータセット(word2vec、手袋、fasttext)に基づくことができる、オープンソースの単語ベクトル/ワードベクトル(推奨)を使用することができます。

3)THUCnews /ログ:ログ

4) THUCnews/saved_dict:训练好的参数文件

5)run.py:程序入口

6)train_eval.py:定义训练、验证、测试函数

7)utils.py:定义数据预处理和加载的函数

8)utils_fasttext.py:定义数据预处理和加载的函数(fasttext增加了bi-gram、tri-gram特征)

 

4. 使用方式

训练并测试:

python --model ModelName(必填,如TextCNN、DPCNN等) --embedding pre_trained(默认)/random --word False(默认 character-level)/True

其他各个模型相关的超参数,可以在各个模型对应的配置类中手动设置。

如果想以词为间隔,首先对文本进行分词,将数据集保存为.txt,每行为一条数据,格式:文本(分词,空格隔开)<tab>标签。

python run.py --model TextCNN --word True

 

 

 

发布了368 篇原创文章 · 获赞 716 · 访问量 13万+

おすすめ

転載: blog.csdn.net/sdu_hao/article/details/104098000