如何在NLTK中使用Stanford RegexNER?

时间:2017-08-23 09:17:40

标签: python nltk stanford-nlp

我知道如何在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中使用它的来源。如果你分享你的想法和意见,我将感激不尽。

2 个答案:

答案 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文件的路径......