标签: stanford-nlp

Java Stanford NLP:部分语音标签?

这里演示的斯坦福NLP 给出了这样的输出:

Colorless/JJ green/JJ ideas/NNS sleep/VBP furiously/RB ./.
Run Code Online (Sandbox Code Playgroud)

部分语音标签是什么意思?我无法找到正式名单.它是斯坦福自己的系统,还是使用通用标签?(JJ例如,是什么?)

另外,例如,当我迭代句子,寻找名词时,我最终会做一些事情,比如查看是否有标签.contains('N').这感觉很弱.有没有更好的方法以编程方式搜索某个词性?

java nlp part-of-speech stanford-nlp

164
推荐指数
6
解决办法
9万
查看次数

如何使用Genia Corpus训练斯坦福分析器?

我为Stanford Parser创建一个新模型有一些问题.

我还从斯坦福下载了最新版本:http: //nlp.stanford.edu/software/lex-parser.shtml

在这里,Genia Corpus有2种格式,xml和ptb(Penn Treebank).

Standford Parser可以用ptd文件训练; 然后我下载了Genia Corpus,因为我想使用生物医学文本:

http://categorizer.tmit.bme.hu/~illes/genia_ptb/ (链接不再可用) (genia_ptb.tar.gz)

然后,我有一个简短的Main类来获得一个生物医学句子的依赖表示:

    String treebankPath = "/stanford-parser-2012-05-22/genia_ptb/GENIA_treebank_v1/ptb";

    Treebank tr = op.tlpParams.diskTreebank();
    tr.loadPath(treebankPath);  
    LexicalizedParser lpc=LexicalizedParser.trainFromTreebank(tr,op);
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的方法,但始终得到相同的结果.

我在最后一行有一个错误.这是我的输出:

Currently Fri Jun 01 15:02:57 CEST 2012
Options parameters:
useUnknownWordSignatures 2
smoothInUnknownsThreshold 100
smartMutation false
useUnicodeType false
unknownSuffixSize 1
unknownPrefixSize 1
flexiTag true
useSignatureForKnownSmoothing false
parserParams edu.stanford.nlp.parser.lexparser.EnglishTreebankParserParams
forceCNF false
doPCFG true
doDep false
freeDependencies false
directional true
genStop true
distance true
coarseDistance false
dcTags false
nPrune false
Train parameters: smooth=false …
Run Code Online (Sandbox Code Playgroud)

java nlp stanford-nlp

93
推荐指数
1
解决办法
4250
查看次数

Stanford Parser和NLTK

是否可以在NLTK中使用Stanford Parser?(我不是在谈论斯坦福POS.)

python parsing nlp nltk stanford-nlp

89
推荐指数
8
解决办法
9万
查看次数

易用性:Stanford CoreNLP与OpenNLP

我希望将一套NLP工具用于个人项目,我想知道Stanford的CoreNLP是否更易于使用或OpenNLP.或者你会推荐另一个免费套餐吗?我之前没有真正做过任何NLP,所以我正在寻找一些我可以快速学习的东西来学习概念和原型.任何帮助表示赞赏.

nlp stanford-nlp

28
推荐指数
2
解决办法
2万
查看次数

是否有可能训练斯坦福NER系统识别更多命名的实体类型?

我现在正在使用一些NLP库,(stanford和nltk)斯坦福我看过演示部分,但只是想问一下是否有可能用它来识别更多的实体类型.

因此,目前斯坦福NER系统(如演示所示)可以将实体识别为人(姓名),组织或位置.但被认可的组织仅限于大学或一些大型组织.我想知道我是否可以使用它的API为更多实体类型编写程序,例如,如果我的输入是"Apple"或"Square",它可以将其识别为公司.

我是否必须制作自己的训练数据集?

此外,如果我想要提取实体及其彼此之间的关系,我觉得我应该使用stanford依赖解析器.我的意思是,首先提取命名实体和标记为"名词"的其他部分,并找出它们之间的关系.

我对么.

谢谢.

nlp named-entity-recognition stanford-nlp

27
推荐指数
3
解决办法
2万
查看次数

如何使用斯坦福解析器将文本拆分成句子?

如何使用斯坦福解析器将文本或段落分割成句子?

是否有任何方法可以提取句子,例如getSentencesFromString()Ruby提供的句子?

java parsing nlp artificial-intelligence stanford-nlp

26
推荐指数
4
解决办法
3万
查看次数

Maven未能下载CoreNLP模型

当从Stanford CoreNLP网站构建示例应用程序时,我遇到了一个奇怪的例外:

Exception in thread "main" java.lang.RuntimeException: edu.stanford.nlp.io.RuntimeIOException: Unrecoverable error while loading a tagger model
at edu.stanford.nlp.pipeline.StanfordCoreNLP$4.create(StanfordCoreNLP.java:493)
…
Caused by: java.io.IOException: Unable to resolve "edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger" as either class path, filename or URL
…
Run Code Online (Sandbox Code Playgroud)

这只发生在属性pos及其后的属性包含在属性中时.

Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Run Code Online (Sandbox Code Playgroud)

这是我的pom.xml的依赖:

<dependencies>
<dependency>
    <groupId>edu.stanford.nlp</groupId>
    <artifactId>stanford-corenlp</artifactId>
    <version>3.2.0</version>
    <scope>compile</scope>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

stanford-nlp maven

26
推荐指数
1
解决办法
7970
查看次数

如何将树编码为神经网络的输入?

我有一棵树,特别是一个解析树,在节点上有标签,在树叶上有字符串/单词.我希望将这棵树作为输入传递到神经网络中,同时保留其结构.

当前的方法假设我们有一些单词词典w1,w2 ..... wn将解析树中出现的单词编码为n维二进制向量,只要解析树中的单词是wi,就会在第i个点出现1

现在树结构怎么样?对于出现在叶子上的n个单词,大约有2 ^ n个可能的父标签所以我们不能设置输入单词的最大长度,然后只是暴力强制枚举所有树.

现在,我能想到的是通过选择叶子的直接父亲来近似树.这可以用二进制矢量表示,其尺寸等于不同类型标签的数量 - 我认为约为100.我的输入是二维的.第一个是单词的向量表示,第二个是其父标记的向量表示

除此之外,在句子中会失去很多结构.是否有解决此问题的标准/更好方法?

nlp machine-learning stanford-nlp neural-network deep-learning

24
推荐指数
2
解决办法
3213
查看次数

使用NLTK中的Stanford NER Tagger提取人员和组织列表

我正在尝试使用Python NLTK中的Stanford Named Entity Recognizer(NER)提取人员和组织的列表.当我跑:

from nltk.tag.stanford import NERTagger
st = NERTagger('/usr/share/stanford-ner/classifiers/all.3class.distsim.crf.ser.gz',
               '/usr/share/stanford-ner/stanford-ner.jar') 
r=st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
print(r) 
Run Code Online (Sandbox Code Playgroud)

输出是:

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]
Run Code Online (Sandbox Code Playgroud)

我想要的是从这个列表中提取这种形式的所有人和组织:

Rami Eid
Sony Brook University
Run Code Online (Sandbox Code Playgroud)

我试图循环遍历元组列表:

for x,y in i:
        if y == 'ORGANIZATION':
            print(x)
Run Code Online (Sandbox Code Playgroud)

但是这段代码只打印每行一个实体:

Sony 
Brook 
University
Run Code Online (Sandbox Code Playgroud)

对于真实数据,可以有多个组织,一个句子中的人,我如何在不同实体之间设置限制?

python named-entity-recognition nltk stanford-nlp

24
推荐指数
2
解决办法
2万
查看次数

代词解决方案倒退

通常的共指解决方案以下列方式工作:

提供

The man likes math. He really does.
Run Code Online (Sandbox Code Playgroud)

它弄清楚了

he 
Run Code Online (Sandbox Code Playgroud)

是指

the man.
Run Code Online (Sandbox Code Playgroud)

有很多工具可以做到这一点.

但是,有没有办法向后做?

例如,

特定

The man likes math. The man really does.
Run Code Online (Sandbox Code Playgroud)

我想把代词解决方案做"倒退"

这样我得到的输出就像

The man likes math. He really does.
Run Code Online (Sandbox Code Playgroud)

我的输入文本大多是3~10个句子,我正在使用python.

python nlp nltk stanford-nlp

23
推荐指数
1
解决办法
1047
查看次数