我在一个python教程网站上找到了以下代码:
from nltk.tag import StanfordNERTagger
stanford_classifier = open("english.all.3class.distsim.crf.ser.gz")
stanford_ner_path = open("stanford-ner.jar")
st = StanfordNERTagger(stanford_classifier, stanford_ner_path)
Run Code Online (Sandbox Code Playgroud)
错误如下:
from nltk.tag import StanfordNERTagger
stanford_classifier = open("english.all.3class.distsim.crf.ser.gz")
stanford_ner_path = open("stanford-ner.jar")
st = StanfordNERTagger(stanford_classifier, stanford_ner_path)
Run Code Online (Sandbox Code Playgroud) 我试图从依赖解析器的输出中创建一棵树(嵌套字典)。这句话是“我在睡梦中射杀了一头大象”。我能够获得链接中所述的输出: How do I do dependency parsing in NLTK?
nsubj(shot-2, I-1)
det(elephant-4, an-3)
dobj(shot-2, elephant-4)
prep(shot-2, in-5)
poss(sleep-7, my-6)
pobj(in-5, sleep-7)
Run Code Online (Sandbox Code Playgroud)
为了将此元组列表转换为嵌套字典,我使用了以下链接: 如何将 python 元组列表转换为树?
def build_tree(list_of_tuples):
all_nodes = {n[2]:((n[0], n[1]),{}) for n in list_of_tuples}
root = {}
print all_nodes
for item in list_of_tuples:
rel, gov,dep = item
if gov is not 'ROOT':
all_nodes[gov][1][dep] = all_nodes[dep]
else:
root[dep] = all_nodes[dep]
return root
Run Code Online (Sandbox Code Playgroud)
输出如下:
{'shot': (('ROOT', 'ROOT'),
{'I': (('nsubj', 'shot'), {}),
'elephant': (('dobj', 'shot'), {'an': (('det', 'elephant'), {})}),
'sleep': (('nmod', 'shot'), …Run Code Online (Sandbox Code Playgroud) 我知道词性标记会用适当的词性来标记句子中的每个单词,但这不也是解析器所做的吗?即,将一个句子分解为其组成部分?我在互联网上查过这一点,但找不到任何令人满意的解释。请解答我的疑惑。提前致谢
我是stanford Core NLP的新手.我想用它来分割英文,德文,法文文本中的句子.哪个班级有效?提前感谢.
在斯坦福NER软件附带的一个示例.prop文件中有两个我不明白的选项:
useDistSim = true
distSimLexicon = /u/nlp/data/pos_tags_are_useless/egw4-reut.512.clusters
Run Code Online (Sandbox Code Playgroud)
有没有人提示DistSim代表什么,我在哪里可以找到有关如何使用这些选项的更多文档?
更新:我刚刚发现DistSim意味着分布相似性.我仍然想知道在这种情况下这意味着什么.
我正在使用Stanford Tagger来确定词性.但是,我希望从文本中获取更多信息.是否有可能获得更多信息,如句子的时态或是否处于主动/被动状态?
到目前为止,我正在使用非常基本的PoS-Tagging方法:
List<List<TaggedWord>> taggedUnits = new ArrayList<List<TaggedWord>>();
String input = "This sentence is going to be future. The door was opened.";
for (List<HasWord> sentence : MaxentTagger.tokenizeText(new StringReader(input)))
{
taggedUnits.add(tagger.tagSentence(sentence));
}
Run Code Online (Sandbox Code Playgroud) 几乎没有可用于自然语言处理的词典.像积极的,消极的词汇词典等.
有没有可用的词典,其中包含所有词典单词的同义词列表?
像 nice
synonyms: enjoyable, pleasant, pleasurable, agreeable, delightful, satisfying, gratifying, acceptable, to one's liking, entertaining, amusing, diverting, marvellous, good;
Run Code Online (Sandbox Code Playgroud) dictionary nlp data-processing stanford-nlp text-classification
我正在寻找一种方法将复合句分解为stanford nlp中的简单句子.
例如:投入:经理回家并自杀.
输出:经理回家了.他自杀了.
我在我的应用程序中使用了Stanford的CoreNLP命名实体识别器(NER)和词性(POS)标记器.问题是我的代码预先标记了文本然后我需要NER和POS标记每个标记.但是,我只能通过命令行选项找到如何使用命令行选项,但不能以编程方式找到.
有人可以告诉我如何使用斯坦福的CoreNLP以编程方式将NER和POS标记为预先标记的文本吗?
编辑:
我实际上正在使用单独的NER和POS指令.所以我的代码是按斯坦福大学NER和POS软件包中给出的教程中的指示编写的.但我的classpath中有CoreNLP.所以我在我的类路径中有CoreNLP,但是使用了NER和POS包中的教程.
编辑:
我刚刚发现有关于如何在这里设置CoreNLP属性的说明http://nlp.stanford.edu/software/corenlp.shtml但我希望如果有一个快速的方法来做我想要的斯坦福NER和POS标签,所以我不必重新编码一切!
我正在尝试使用Java中的Stanford CoreNLP v3.9.1注释文本。使用的注释器是:标记化,分割,pos,引理,ner
我已经从https://stanfordnlp.github.io/CoreNLP/download.html包含了模型jar 。这两个英语模型都包含在我的项目中(正常+ kbp)。
但是,加载english.muc.7class.distsim.crf.ser.gz分类器后,将引发以下异常:Couldn't read TokensRegexNER from edu/stanford/nlp/models/kbp/regexner_caseless.tab。
打开下载jar模型后stanford-english-kbp-corenlp-2018-02-27-models.jar,正确的路径regexner_caseless.tab为edu/stanford/nlp/models/kbp/english/regexner_caseless.tab(注意english子路径)。
如何使Stanford CoreNLP使用正确的路径?
stanford-nlp ×10
nlp ×8
dictionary ×2
pos-tagger ×2
python ×2
file-io ×1
java ×1
nltk ×1
parsing ×1
python-3.x ×1
sentence ×1
typeerror ×1