私はNLTKを初めて使い、NLTK 3 Cookbookを使ってPython 3 Text Processingをやっています:第4章「WordNetを使ってタグ付け」を行い、デフォルト言語の英語でうまく動作します。私はomwに言語Bahasa(zsm)をダウンロードし、他のデータセットを使用してBahasaで試してみたいと思っています。同じアプローチを使用して、どのように言語のデフォルトを英語からzsmに変更できますか?私が使用しているNLTKのデフォルトのワードネット言語をzsmに変更するにはどうすればいいですか?
コード:事前に
class WordNetTagger(SequentialBackoffTagger):
def __init__(self, *args, **kwargs):
SequentialBackoffTagger.__init__(self, *args, **kwargs)
self.wordnet_tag_map = {
'n': 'NN',
's': 'JJ',
'a': 'JJ',
'r': 'RB',
'v': 'VB'
}
def choose_tag(self, tokens, index, history):
word = tokens[index]
fd = FreqDist()
for synset in wordnet.synsets(word):
fd[synset.pos()] += 1
if not fd: return None
return self.wordnet_tag_map.get(fd.max())
感謝。
は、あなたがあなたの助けのために@alexisありがとうございました。それは動作し、私は探していたが、結果は私のものとは異なっていた。あなたの提案を使用して、タグなしの単語のほとんどはありません。それは私のように明示的に指定されたものと比べて、多くの言葉をエスケープするようなものです。うーん、興味深い。どのようなアイデアが起こるか。 –
まあ...私の答えは、デフォルトの引数をラッパークラスでオーバーライドする方法を示しましたが、wordnetを使って_actually_する方法はありませんでした。おっと...チェックして今修正しました。もう一度見てください。 (主なものは、元の 'synsets()'メソッドのシグネチャと一致していました) – alexis
@alexisに感謝します。私はそれを試して、まだ同じを返します。しかし、後でそれらのデータセットを使用して両方のアプローチをテストするために、他の人に任せます。今のところあなたの提案は私の主な質問に答えました:-) ps:私は[link](http://www.nltk.org/howto/wordnet.html)を使用していました –