NLTKのスタンフォードの助けを借りて名前エンティティを抽出する方法を知っています。スタンフォードRegexNERをNLTKで使用するには?
ただし、RegexNERも適用する必要があります。 Javaでのアプリケーションは簡単でスタンフォードはhereの例を提供しています。
しかし、NLTKでどのように使用できるかを説明する情報源は見つかりませんでした。あなたの考えや意見を分かち合うと感謝しています。
NLTKのスタンフォードの助けを借りて名前エンティティを抽出する方法を知っています。スタンフォードRegexNERをNLTKで使用するには?
ただし、RegexNERも適用する必要があります。 Javaでのアプリケーションは簡単でスタンフォードはhereの例を提供しています。
しかし、NLTKでどのように使用できるかを説明する情報源は見つかりませんでした。あなたの考えや意見を分かち合うと感謝しています。
私は完全な機能のためにNERClassifierCombinerを使うべきだと思いますが、以下のサンプルコードで正規表現を指定することができます。
class NERComboTagger(StanfordNERTagger):
def __init__(self, *args, **kwargs):
self.stanford_ner_models = kwargs['stanford_ner_models']
kwargs.pop("stanford_ner_models")
super(NERComboTagger,self).__init__(*args, **kwargs)
@property
def _cmd(self):
return ['edu.stanford.nlp.ie.NERClassifierCombiner',
'-ner.model',
self.stanford_ner_models,
'-textFile',
self._input_file_path,
# '-outputFormat',
# self._FORMAT,
'-ner.applyNumericClassifiers',
'true',
# '-ner.useSUTime',
# 'false',
'-regexner.mapping',
'edu/stanford/nlp/models/kbp/cn_regexner_mapping.tab',
'-regexner.validpospattern',
'^(NR|NN|JJ).*',
'-regexner.ignorecase',
'true']
NLTK = Python、Java以外... –
私の知る限り、Javaの(つまり、Pythonで)外にスタンフォードCoreNLP RegexNER
Javaクラスにアクセスする唯一の方法の一つは、このGitHubのレポを経由する:
https://github.com/dasmith/stanford-corenlp-python
参照してください。ここに私の記述、:基本的に
https://github.com/dasmith/stanford-corenlp-python/issues/33
は、スタンフォード・corenlp-pythonのを編集しますファイル、regexnerモジュールを有効にし、カスタム名前付きエンティティへのパスを指定してファイル:
annotators = tokenize, ssplit, pos, lemma, ner, parse, dcoref, regexner
# regexner.mapping = path_to_entities_file, e.g.
regexner.mapping = /home/victoria/projects/ie/entities.txt
あなたはまた、あなたのローカルにダウンロードしたスタンフォード大学にあなたのパスを更新し、スタンフォード・corenlp-pythonのcorenlp.py
ファイルを編集する必要がありますCoreNLP * .jarファイル...
スタンフォードNERは正規表現ではありません... – alvas