标签: stanford-nlp

Stanford Parser:如何提取依赖关系?

我的工作在于在noun+verb句子中查找(可以)查询,然后提取对象.

例如:"coding is sometimes a tough work."我的查询是:"coding is".

我得到的类型依赖是:

nsubj(work-6, coding-1)   
cop(work-6, is-2)    
advmod(work-6, sometimes-3)
det(work-6, a-4)
amod(work-6, tough-5)
Run Code Online (Sandbox Code Playgroud)

我的程序应该提取nsubj依赖项,识别"coding"为查询并保存"work".

可能这看起来很简单,但直到现在,我还没有找到能够提取特定类型依赖关系的方法,我真的需要这个才能完成我的工作.

欢迎任何帮助,

parsing nlp stanford-nlp

7
推荐指数
2
解决办法
7234
查看次数

检测代词及其名词?

想知道是否有任何工具可以帮助我在文本中检测代词的名称.

Jone is Spanish. He can speak German.
Run Code Online (Sandbox Code Playgroud)

我如何标记HeJone

java nlp stanford-nlp weka

7
推荐指数
2
解决办法
2296
查看次数

Stanford Tagger,Parser和CoreNLP有什么区别?

我目前正在使用斯坦福NLP集团的不同工具,并试图了解它们之间的差异.在我看来,他们彼此交叉,因为我可以在不同的工具中使用相同的功能(例如,标记化,POS-Tag,句子可以由Stanford POS-Tagger,Parser和CoreNLP完成).

我想知道每个工具之间的实际区别是什么,以及我应该在哪些情况下使用它们.

nlp stanford-nlp

7
推荐指数
1
解决办法
1758
查看次数

Stanford CoreNLP Annotators线程安全吗?

斯坦福CoreNLP的网站

http://nlp.stanford.edu/software/corenlp.shtml

列出了几十个像魅力一样工作的注释器.我想使用Annotators的实例来处理多个线程的常见任务(词形还原,标记,解析).例如,将大量(GB文本)的处理拆分为线程或提供Web服务.

过去有一些讨论引用了LocalThreads,根据我的理解,它使用每个线程的一个Annotator实例(从而避免了线程安全方面的问题).这是一个选项,但这样所有模型文件和资源也必须加载n次.

Annotators(或其中一些)是否可以使用线程安全?我在讨论,文档或常见问题中找不到任何结论性/官方性的内容.

java multithreading thread-safety stanford-nlp

7
推荐指数
1
解决办法
1737
查看次数

如何从Python子进程收集输出

我试图创建一个python进程,读取一些输入,处理它并打印出结果.处理由子流程(斯坦福大学的NER)完成,对于ilustration,我将使用'cat'.我不确切知道NER会给出多少输出,所以我使用一个单独的线程来收集它并打印出来.以下示例说明.

import sys
import threading
import subprocess

#   start my subprocess
cat = subprocess.Popen(
    ['cat'],
    shell=False, stdout=subprocess.PIPE, stdin=subprocess.PIPE,
    stderr=None)


def subproc_cat():
    """ Reads the subprocess output and prints out """
    while True:
        line = cat.stdout.readline()
        if not line:
            break
        print("CAT PROC: %s" % line.decode('UTF-8'))

#   a daemon that runs the above function
th = threading.Thread(target=subproc_cat)
th.setDaemon(True)
th.start()

#   the main thread reads from stdin and feeds the subprocess
while True:
    line = sys.stdin.readline()
    print("MAIN PROC: %s" % line)
    if not …
Run Code Online (Sandbox Code Playgroud)

python subprocess stanford-nlp python-multithreading

7
推荐指数
1
解决办法
284
查看次数

如何从java中的字符串中删除无效的unicode字符

我正在使用CoreNLP神经网络依赖性解析器来解析一些社交媒体内容.不幸的是,该文件包含的字符根据fileformat.info,不是有效的unicode字符或unicode替换字符.这些是例如U + D83DU + FFFD.如果这些字符在文件中,coreNLP会回复错误消息,如下所示:

Nov 15, 2015 5:15:38 PM edu.stanford.nlp.process.PTBLexer next
WARNING: Untokenizable: ? (U+D83D, decimal: 55357)
Run Code Online (Sandbox Code Playgroud)

根据这个答案,我试图document.replaceAll("\\p{C}", "");删除这些字符.document这里只是一个字符串的文档.但这没有帮助.

在将字符串传递给coreNLP之前,如何从字符串中删除这些字符?

更新(11月16日):

为了完整起见,我应该提一下,我只是为了通过预处理文件来避免大量的错误消息而问这个问题.CoreNLP只是忽略它无法处理的字符,所以这不是问题.

java regex unicode parsing stanford-nlp

7
推荐指数
1
解决办法
6788
查看次数

Stanford CoreNLP命名实体识别如何捕获5英寸,5英寸,5英寸,5英寸等测量值

我希望使用Stanford CoreNLP捕获测量结果.(如果你可以建议一个不同的提取器,那也没关系.)

例如,我想找到15千克,15公斤,15.0公斤,15公斤,15磅,15磅等,但其中CoreNLPs抽取规则,我没有看到一个用于测量.

当然,我可以使用纯正则表达式执行此操作,但工具包可以更快地运行,并且它们提供了更高级别的块的机会,例如将gbGB一起处理,RAM内存作为构建块 - 即使没有完整语法分析 - 因为它们构建了更大的单元,如128 gb RAM8 GB内存.

我想要一个基于规则的提取器,而不是基于机器学习的提取器,但是不要将其作为RegexNer或其他地方的一部分.我该怎么做?

IBM命名实体提取可以做到这一点.正则表达式以有效的方式运行,而不是将文本传递给每个正则表达式.并且正则表达式被捆绑以表达有意义的实体,例如将所有测量单元组合成单个概念的实体.

nlp named-entity-recognition stanford-nlp named-entity-extraction

7
推荐指数
1
解决办法
1142
查看次数

如何开始使用NLP进行文本摘要项目?

我的最后一年工程项目要求我使用Java或Python构建应用程序,该应用程序使用自然语言处理来总结文本文档.我怎么开始编程这样的应用程序?

基于一些研究,我刚才注意到基于提取的摘要对我来说是最好的选择,因为它不像基于抽象的算法那么复杂.即便如此,如果有人能指引我朝着正确的方向前进,那将会非常有帮助.

nlp stanford-nlp

7
推荐指数
2
解决办法
6712
查看次数

CoreNLP无法加载特定于语言的属性

我正在尝试让Stanford CoreNLP作为服务器正常运行(虽然问题可能影响非服务器使用),但不断收到此错误:

"ERROR CoreNLP - Failure to load language specific properties".

它仍然有效,但可能没有它需要的一切才能运作良好.

我从基础下载开始.当我看到上面的错误时,我下载并放置在CoreNLP目录中的英文模型jar和english-kbp模型jar.这两个是巨大的,似乎不对应基本下载中的任何内容.但是,在重新启动服务器后,我仍然遇到上述错误.我也尝试过添加

-serverProperties StanfordCoreNLP-english.properties

到命令行,但这会给出一个错误,说它无法读取属性文件.

任何人都知道我错过了什么?

stanford-nlp corenlp-server

7
推荐指数
1
解决办法
529
查看次数

斯坦福在 python 中使用 coreNLP 键入依赖项

斯坦福依赖手册中,他们提到了“斯坦福类型依赖”,特别是“neg”类型 - 否定修饰符。当使用网站使用斯坦福增强++解析器时,它也可用。例如,句子:

“巴拉克奥巴马不是出生在夏威夷”

在此处输入图片说明

解析器确实找到了 neg(born,not)

但是当我使用stanfordnlppython 库时,我能得到的唯一依赖解析器将解析句子如下:

('Barack', '5', 'nsubj:pass')

('Obama', '1', 'flat')

('was', '5', 'aux:pass')

('not', '5', 'advmod')

('born', '0', 'root')

('in', '7', 'case')

('Hawaii', '5', 'obl')
Run Code Online (Sandbox Code Playgroud)

以及生成它的代码:

import stanfordnlp
stanfordnlp.download('en')  
nlp = stanfordnlp.Pipeline()
doc = nlp("Barack Obama was not born in Hawaii")
a  = doc.sentences[0]
a.print_dependencies()
Run Code Online (Sandbox Code Playgroud)

有没有办法获得与增强型依赖解析器或任何其他导致类型化依赖的斯坦福解析器类似的结果,这会给我否定修饰符?

python parsing nlp stanford-nlp

7
推荐指数
1
解决办法
2054
查看次数