标签: stanford-nlp

如何为stanford tagger创建自己的训练语料库?

我必须用很多简短的手和当地的术语来分析非正式的英文文本.因此,我正在考虑为斯坦福标记创建模型.

如何为斯坦福标记器创建我自己的标记语料库集?

语料库的语法是什么,我的语料库需要多长时间才能达到理想的性能?

java nlp stanford-nlp

15
推荐指数
2
解决办法
7469
查看次数

我如何操纵解析树?

我一直在玩自然语言解析树并以各种方式操纵它们.我一直在使用斯坦福大学的Tregex和Tsurgeon工具,但代码很混乱,并不适合我的Python环境(这些工具是Java,不适合调整).我想要一个工具集,当我需要更多功能时,它可以轻松进行黑客攻击.还有其他工具非常适合在树上进行模式匹配,然后操纵那些匹配的分支吗?

例如,我想将以下树作为输入:

(ROOT
  (S
    (NP
      (NP (NNP Bank))
      (PP (IN of)
        (NP (NNP America))))
    (VP (VBD used)
      (S
        (VP (TO to)
          (VP (VB be)
            (VP (VBN called)
              (NP
                (NP (NNP Bank))
                (PP (IN of)
                  (NP (NNP Italy)))))))))))
Run Code Online (Sandbox Code Playgroud)

和(这是一个简化的例子):

  1. 找到标签为NP的任何节点,其中第一个孩子的标签为NP,一些后代名为"Bank",第二个孩子的标签为PP.
  2. 如果匹配,则获取PP节点的所有子节点并将它们移动到匹配的NP子节点的末尾.

例如,采取树的这一部分:

(NP
  (NP (NNP Bank))
  (PP (IN of)
    (NP (NNP America))))
Run Code Online (Sandbox Code Playgroud)

把它变成这个:

(NP
  (NP (NNP Bank) (IN of) (NP (NNP America))))
Run Code Online (Sandbox Code Playgroud)

由于我的输入树是S表达式,我考虑使用Lisp(嵌入到我的Python程序中)但是我已经写了很长时间,我在Lisp中编写了一些重要内容,我不知道从哪里开始.

什么是描述模式的好方法?什么是描述操纵的好方法?什么是思考这个问题的好方法?

lisp nlp pattern-matching stanford-nlp s-expression

15
推荐指数
3
解决办法
3540
查看次数

斯坦福核心NLP - 理解共指解析

我在理解上一版斯坦福NLP工具中对coref解析器所做的更改时遇到了一些麻烦.例如,下面是一个句子和相应的CorefChainAnnotation:

The atom is a basic unit of matter, it consists of a dense central nucleus surrounded by a cloud of negatively charged electrons.

{1=[1 1, 1 2], 5=[1 3], 7=[1 4], 9=[1 5]}
Run Code Online (Sandbox Code Playgroud)

我不确定我理解这些数字的含义.查看源代码也没有任何帮助.

谢谢

java nlp stanford-nlp

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

如何训练斯坦福NLP情绪分析工具

大家好!我正在使用Stanford Core NLP软件包,我的目标是在实时推文上进行情绪分析.

使用情绪分析工具返回对文本"态度"的非常差的分析.许多正面被标记为中性,许多负面评价为正面.我已经在一个文本文件中获得了超过一百万条推文,但我不知道如何实际训练该工具并创建我自己的模型.

链接到斯坦福情绪分析页面

"可以使用PTB格式数据集使用以下命令重新训练模型:"

java -mx8g edu.stanford.nlp.sentiment.SentimentTraining -numHid 25 -trainPath train.txt -devPath     dev.txt -train -model model.ser.gz
Run Code Online (Sandbox Code Playgroud)

来自dev.txt的样本(前4位表示5 ... 4/5正极性)

(4 (4 (2 A) (4 (3 (3 warm) (2 ,)) (3 funny))) (3 (2 ,) (3 (4 (4 engaging) (2 film)) (2 .))))
Run Code Online (Sandbox Code Playgroud)

来自test.txt的示例

(3 (3 (2 If) (3 (2 you) (3 (2 sometimes) (2 (2 like) (3 (2 to) (3 (3 (2 go) (2 (2 to) (2 (2 the) (2 movies)))) (3 (2 to) (3 (2 …
Run Code Online (Sandbox Code Playgroud)

java nlp stanford-nlp sentiment-analysis

15
推荐指数
1
解决办法
1万
查看次数

在Android上使用CoreNLP'无法返回null或leaf Tree的头部'

我想在我的Android项目中使用CoreNLP.但是当我创建这样的CoreNLP实例时:

import java.util.Properties;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.neural.rnn.RNNCoreAnnotations;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.util.CoreMap;

public class NLP {

    private StanfordCoreNLP pipeline;
    Properties props;

    public NLP() {
        props = new Properties();
        props.setProperty("annotators", "tokenize, ssplit, pos, parse, sentiment");
        pipeline = new StanfordCoreNLP(props);//-->ERROR, SEE BELOW
    }

    public int findSentiment(String line) {
        int mainSentiment = 0;
        if (line != null && line.length() > 0) {
            int longest = 0;
            Annotation annotation = pipeline.process(line);
            for (CoreMap sentence : annotation
                    .get(CoreAnnotations.SentencesAnnotation.class)) {
                Tree …
Run Code Online (Sandbox Code Playgroud)

java android stanford-nlp sentiment-analysis

15
推荐指数
1
解决办法
293
查看次数

Maven依赖:get不下载Stanford NLP模型文件

斯坦福自然语言处理工具包的核心组件在stanford-corenlp-1.3.4.jar文件中包含Java代码,并且在单独的stanford-corenlp-1.3.4-models.jar文件中具有(非常大的)模型文件.Maven不会自动下载模型文件,但仅限<classifier>models</classifier>于向.pom 添加行.这是一个.pom片段,可以获取代码和模型.

    <dependency>
        <groupId>edu.stanford.nlp</groupId>
        <artifactId>stanford-corenlp</artifactId>
        <version>1.3.4</version>
        <classifier>models</classifier>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何从命令行做同样的事情.看起来Maven dependency:get插件任务就是这样做的方法.以下命令行似乎是正确的

mvn dependency:get \
    -DgroupId=edu.stanford.nlp \
    -DartifactId=stanford-corenlp \
    -Dversion=LATEST \
    -Dclassifier=models \
    -DrepoUrl=repo1.maven.org
Run Code Online (Sandbox Code Playgroud)

但是,它只下载代码Jar文件而不是模型Jar文件.

知道为什么会这样吗?我不确定这只是斯坦福NLP包的一个问题,还是一个更普遍的classifier选择问题dependency:get.

models stanford-nlp maven

14
推荐指数
1
解决办法
4074
查看次数

我如何使用斯坦福NER(命名实体识别器)的python接口?

我想使用pyner库在python中使用Stanford NER.这是一个基本的代码片段.

import ner 
tagger = ner.HttpNER(host='localhost', port=80)
tagger.get_entities("University of California is located in California, United States")
Run Code Online (Sandbox Code Playgroud)

当我在我的本地python控制台(IDLE)上运行它.它应该给我这样的输出

  {'LOCATION': ['California', 'United States'],
 'ORGANIZATION': ['University of California']}
Run Code Online (Sandbox Code Playgroud)

但当我执行此操作时,它显示空括号.我实际上是新手.

nlp named-entity-recognition stanford-nlp python-2.7

14
推荐指数
1
解决办法
8261
查看次数

斯坦福解析树 - SBAR意味着什么?

我想知道SBAR是什么意思,我如何正确地在树中表示这句话?

为什么有2个S?

原句是: After she ate the cake, Emma visited Tony in his room.

(ROOT
  (S
    (SBAR (IN After)
      (S
        (NP (PRP she))
        (VP (VBD ate)
          (NP (DT the) (NN cake)))))
    (, ,)
    (NP (NNP Emma))
    (VP (VBD visited)
      (NP
        (NP (NNP Tony))
        (PP (IN in)
          (NP (PRP$ his) (NN room)))))
    (. .)))
Run Code Online (Sandbox Code Playgroud)

parsing parse-tree stanford-nlp

14
推荐指数
1
解决办法
6006
查看次数

使用斯坦福解析器进行子句提取

我有一个复杂的句子,我需要将它分为主要和从属条款.例如
ABC 的一句话引用了许多国家禁止使用化学添加剂的事实,并认为它们也可能在这种状态下被禁止.
需要拆分

1)ABC cites the fact   
2)chemical additives are banned in many countries   
3)ABC feels they may be banned in this state too.    
Run Code Online (Sandbox Code Playgroud)

我想我可以使用Stanford Parser树或依赖项,但我不知道如何从这里开始.

那个树

(ROOT
  (S
    (NP (NNP ABC))
    (VP (VBZ cites)
      (NP (DT the) (NN fact))
      (SBAR (IN that)
        (S
          (NP (NN chemical) (NNS additives))
          (VP
            (VP (VBP are)
              (VP (VBN banned)
                (PP (IN in)
                  (NP (JJ many) (NNS countries)))))
            (CC and)
            (VP (VBZ feels)
              (SBAR
                (S
                  (NP (PRP they))
                  (VP (MD may)
                    (VP (VB …

nlp stanford-nlp

14
推荐指数
1
解决办法
8073
查看次数

使用CoreNLP提取多个单词命名实体

我正在使用CoreNLP进行命名实体提取,并遇到了一些问题.问题在于,只要命名实体由多个标记组成,例如"Han Solo",注释器就不会将"Han Solo"作为单个命名实体返回,而是作为两个单独的实体,"Han""Solo" .

是否可以将命名实体作为一个令牌?我知道我可以在这个范围内使用带有classifyWithInlineXML的CRFClassifier,但我的解决方案要求我使用CoreNLP,因为我也需要知道单词编号.

以下是我到目前为止的代码:

    Properties props = new Properties();
    props.put("annotators", "tokenize,ssplit,pos,lemma,ner,parse");
    props.setProperty("ner.model", "edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz");
    pipeline = new StanfordCoreNLP(props);
    Annotation document = new Annotation(text);
    pipeline.annotate(document);
    List<CoreMap> sentences = document.get(SentencesAnnotation.class);
    for (CoreMap sentence : sentences) {
        for (CoreLabel token : sentence.get(TokensAnnotation.class)) {
                System.out.println(token.get(NamedEntityTagAnnotation.class));
        }
    }
Run Code Online (Sandbox Code Playgroud)

帮助我Obi-Wan Kenobi.你是我唯一的希望.

named-entity-recognition stanford-nlp

13
推荐指数
1
解决办法
3081
查看次数