当前位置:  开发笔记 > 编程语言 > 正文

自然语言处理

如何解决《自然语言处理》经验,为你挑选了4个好方法。

问题可能(约100%)是主观的,但我需要建议.什么是自然语言处理的最佳语言?我知道Java和C++,但有更简单的方法.更具体地说,我需要处理来自许多站点的文本并获取信息.



1> ffriend..:

正如我在评论中所说,问题不是关于语言,而是关于合适的图书馆.Java和C++中都有很多NLP库.我相信你必须检查它们中的一些(用两种语言)然后,当你知道所有大量可用的库时,创建某种"大计划",如何实现你的任务.所以,在这里,我只是给你一些链接,简要解释一下是什么.

Java的

GATE - 它正是它的名字的意思 - 文本处理的通用架构.GATE中的应用程序是一个管道.您将语言处理资源(如标记器,POS标记器,形态分析器等)放在其上并运行该过程.结果表示为一组注释 - 元信息,附加到文本的和平(例如令牌).除了大量的插件(包括与 WordNet或Stanford Parser等其他NLP资源集成的插件)之外,它还有许多预定义的词典(城市,名称等)和它自己的类似于regex的语言JAPE.GATE附带自己的IDE(GATE Developer),您可以在其中尝试管道设置,然后保存并从Java代码加载.

UIMA - 或非结构化信息管理应用程序.它在架构方面与GATE非常相似.它还表示管道并生成注释集.与GATE一样,它具有可视化IDE,您可以在其中试用未来的应用程序.不同之处在于UIMA主要涉及信息提取,而GATE在没有明确考虑其目的的情况下执行文本处理.UIMA还带有简单的REST服务器.

OpenNLP - 他们称自己是NLP上开源项目的组织中心,这是最合适的定义.主要的开发方向是将机器学习算法用于最一般的NLP任务,如词性标注,命名实体识别,共参考分辨率等.它还与UIMA很好地集成,因此它的工具也可用.

斯坦福NLP - 可能是拥有NLP和ML知识的工程师和研究人员的最佳选择.与GATE和UIMA这样的图书馆不同,它并不旨在提供尽可能多的工具,而是专注于惯用模型.例如,你没有全面的词典,但你可以训练概率算法来创建它!除了 CoreNLP组件,它提供了最常用的工具,如标记化,POS标记,NER等,它有几个非常有趣的子项目.例如,他们的依赖框架允许您提取完整的句子结构.也就是说,例如,您可以轻松地提取有关动词的主语和宾语的信息,这使用其他NLP工具要困难得多.

C++

UIMA - 是的,Java和C++都有完整的实现.

斯坦福分析师 - 斯坦福大学的一些项目仅在Java中,其他项目 - 仅在C++中,其中一些项目以两种语言提供.你可以在这里找到很多.

蜜蜂

许多Web服务API执行特定的语言处理,包括:

Alchemy API - 语言识别,命名实体识别,情感分析等等!看看他们的主页 - 这是非常自我描述的.

OpenCalais - 这项服务试图建立一切的巨大图表.您传递了一个网页URL,它使用找到的实体以及它们之间的关系丰富了此页面文本.例如,您将一个页面传递给"史蒂夫·乔布斯"并返回"Apple Inc." (粗略地说)与史蒂夫乔布斯相同的概率.

其他建议

是的,你一定要看看Python的NLTK.它不仅是一个功能强大且易于使用的NLP库,而且还是极其友好的社区创建的优秀科学堆栈的一部分.

更新(2017-11-15):7年后,有更多令人印象深刻的工具,很酷的算法和有趣的任务.可在此处找到一个全面的描述:

https://tomassetti.me/guide-natural-language-processing/



2> pmav99..:

Python和NLTK



3> missingfakto..:

ScalaNLP是一个用Scala编写的自然语言处理库,似乎适合您的工作.



4> Luchux..:

我会推荐Python和NLTK.

根据我使用它的经验,我可以查明一些提示和注意事项:

Python有高效的列表,字符串处理.您可以非常有效地索引列表,自然语言应该是什么.还有很好的语法美食,例如访问列表的前100个单词,你可以索引为列表[:100](将它与c ++中的stl进行比较).

Python序列化很容易并且是原生的.序列化模块使语言处理语料库和文本处理成为一项简单的任务,一行代码.(将它与使用Boost或其他C++库的几行进行比较)

NLTK提供了加载语料库,处理语法,标记,标记化,语法分析,分块以及一整套机器学习算法等课程.它还为基于文本中的单词分布的概率模型提供了良好的资源.http://www.nltk.org/book

如果学习新的编程语言是一个障碍,你可以查看openNLP for Java http://incubator.apache.org/opennlp/

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有