我知道如何在NLTK的斯坦福大学的帮助下提取名称实体。
from nltk.tag import StanfordNERTagger
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
但是,我也需要应用RegexNER。它在Java中的应用很简单,斯坦福提供了一个例子here。
但是,我找不到任何解释我们如何在NLTK中使用它的来源。如果你分享你的想法和意见,我将感激不尽。
答案 0 :(得分:0)
我认为您应该使用NERClassifierCombiner来实现完整功能,您可以尝试使用下面的示例代码来指定正则表达式。
FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
tx.replace(R.id.frame_layout_id, new ENTER_Fragment_NAME());
tx.commit();
答案 1 :(得分:0)
据我所知,访问Java外的Stanford CoreNLP RegexNER
Java类(即在Python中)的唯一方法之一是通过此GitHub存储库:
https://github.com/dasmith/stanford-corenlp-python
请参阅我的说明,此处:
https://github.com/dasmith/stanford-corenlp-python/issues/33
基本上,编辑stanford-corenlp-python default.properties
文件,启用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
您还需要编辑stanford-corenlp-python corenlp.py
文件,更新您在本地下载的Stanford CoreNLP * .jar文件的路径......