コロケーション抽出のためのNLTKの例の使用に関しては、以下のガイドを見てみましょう:A how-to guide by nltk on collocations extraction
にocated
BNCコーパスリーダーに関する限り、すべての情報はドキュメントの中にありました。
[(('of', 'the'), 0.004902261167963723), (('in', 'the'),0.003554139346773699),
(('.', 'The'), 0.0034315828175746064), (('Gift', 'Aid'), 0.0019609044671854894),
((',', 'and'), 0.0018996262025859428), (('for', 'the'), 0.0018383479379863962), ... ]
をそして、あなたはスコアを使用してそれらを並べ替えしたい場合、あなたはこの
sorted_bigrams = sorted(bigram for bigram, score in scored)
print(sorted_bigrams)
結果のような何かを試みることができる:
from nltk.corpus.reader.bnc import BNCCorpusReader
from nltk.collocations import BigramAssocMeasures, BigramCollocationFinder
# Instantiate the reader like this
bnc_reader = BNCCorpusReader(root="/path/to/BNC/Texts", fileids=r'[A-K]/\w*/\w*\.xml')
#And say you wanted to extract all bigram collocations and
#then later wanted to sort them just by their frequency, this is what you would do.
#Again, take a look at the link to the nltk guide on collocations for more examples.
list_of_fileids = ['A/A0/A00.xml', 'A/A0/A01.xml']
bigram_measures = BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(bnc_reader.words(fileids=list_of_fileids))
scored = finder.score_ngrams(bigram_measures.raw_freq)
print(scored)
というの出力は次のようになります。
[('!', 'If'), ('!', 'Of'), ('!', 'Once'), ('!', 'Particularly'), ('!', 'Raising'),
('!', 'YOU'), ('!', '‘'), ('&', 'Ealing'), ('&', 'Public'), ('&', 'Surrey'),
('&', 'TRAINING'), ("'", 'SPONSORED'), ("'S", 'HOME'), ("'S", 'SERVICE'), ... ]
あなたの目的は何ですか?あなたはNLTKを使用する必要がありますか?私はPythonをよく知らないし、NLTKを使ったこともありませんでしたが、スタンフォードコアNLPを使ってJavaでBNCを処理しました。私の目標は、単語の対の間の依存関係を得るために解析する正しいコーパスを構築することでした。だから、BNCのxmlファイルから始めて、私はすべての文章をxmlパーサーで再作成しました。その後、各文章をCore NLPで処理しました。 あなたの目標が単純にコーパスをインポートするだけの場合、正直なところ私はあなたに返答できませんが、最後のインスタンスではxmlコーパスのtxt形式を作成し、Pythonに渡して最後に文字列で処理します。 –
@ s.dallapalmaこんにちは。私はNLTKを使用する必要はありませんが、単語の "Collocations"を見つけるために使用できるライブラリを使用できるようにする必要があります。私はStanford Core NLPを見ましたが、Collocations機能がないと言われました。 – jason