Pubmedからの情報を使用してNLTKコーパスを構築しようとしています。リストからのNLTKコーパスカテゴリ
私の最初の試みでは、Entrezパッケージを使用してデータを取得する小さな関数を構築し、取り出した記事タイトル(文字列のリスト、つまりタイトル)をファイルのコーパスに入れましたファイル)を作成し、それぞれの 'fileid'(すなわちファイル名)をドキュメントのカテゴリとして使用してコーパスを作成しました。
コーパスの各文書には、タイトル、要約、およびそれぞれのMeSH用語が必要です(最後に、コーパスのカテゴリを定義する必要があります。ドキュメントの名前)。
だから私は解決方法がわからないといういくつかの問題があります。
1)を次のように私のコーパスリーダーが行く:理解しやすいかもしれように私は、後方スタートします
「cat_pattern」はfileids引数からカテゴリ名を抽出する正規表現ですcorpus = CategorizedPlaintextCorpusReader(corpus_root, file_pattern,
cat_pattern=r'(\w+)_.*\.txt')
、すなわちファイルの名前。しかし、今では、ファイル内のMeSH用語からこれらのカテゴリを取得する必要があります。
2)Pubmedクエリーは、最初にタイトル私はコーパスを生成するために使うだろうが)、今はタイトル、要約、およびMeSHの用語を取得する必要がある。次のように
擬似コードが何かのようになります。
papers = []
「論文」は検索されたすべての記事を含むリストだけでなく、記事に関連するすべての情報です。のは、私は、持っているとしましょう:
out = []
for each in range(0, len(papers)):
out.append(papers[each]['TI'])
out.append(papers[each]['AB'])
out.append(papers[each]['MH'])
リストの最後の部分は、[「MH」](MeSH用語のリストが)、私はコーパスのカテゴリを定義するために使用するために必要なものであること。
3)私は、これらの情報の3枚付きコーパスを構築した後、私の分級機を使用できるようにするには、私も何とかこのへの情報のすべてのこのバッチを変換する必要があります:「
# X: a list or iterable of raw strings, each representing a document.
X = [corpus.raw(fileid) for fileid in corpus.fileids()]
ことを思い出しfileidはコーパスの各文書である。これは最初のプロトタイプのコードであり、各文書は1つの文字列(タイトル)で構成され、それぞれの "文書"はタイトル(['TI'])、要約(['AB'] )、およびMeSH用語([「MH」] - 私があるため、次のコードで、わからないんだけど、この1 :)ここ
# y: a list or iterable of labels, which will be label encoded.
y = [corpus.categories(fileid)[0] for fileid in corpus.fileids()]
、yは今のファイル名だったラベルを表し、および私はMeSH用語であるためにラベルが必要です。
私はこのことをどうやって実現するかわかっていません。私の知る限りこれが可能であっても、はい、私はNLTKの本のチュートリアルを検索して読みました.NLTKコーパスの作り方に関する多くのページ私がやるべきことは何も合わないようです。
これは非常に混乱するかもしれませんが、私に何か言い換える必要がある場合はお知らせください。任意の助けを感謝されるでしょう:)
https://stackoverflow.com/questions/10463898/creating-a-custom-categorized-corpus-in-nltk-and-python – alvas
私はすでにそれを見ていましたが、残念なことにそれは助けになりません、ありがとうございます。 – tanmald