首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中是否有用于文本分析/挖掘的API?

Java中是否有用于文本分析/挖掘的API?
EN

Stack Overflow用户
提问于 2011-07-23 20:56:35
回答 5查看 16K关注 0票数 25

我想知道Java中是否有可以进行文本分析的API。可以提取文本中的所有单词、单独的单词、表达式等的东西。可以通知找到的单词是数字、日期、年份、名称、货币等的东西。

我现在正在开始文本分析,所以我只需要一个API就可以启动了。我做了一个网络爬虫,现在我需要一些东西来分析下载的数据。需要方法来计算页面中的单词数量,相似的单词,数据类型和其他与文本相关的资源。

Java中有用于文本分析的API吗?

编辑:文本挖掘,我想要挖掘文本。Java的API提供了这一点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-23 21:26:58

例如,您可以使用标准库java.text中的一些类,或者使用StreamTokenizer (您可以根据自己的需求对其进行自定义)。但正如你所知道的-来自互联网的文本数据通常有很多拼写错误,,为了更好的性能,你必须使用像,模糊标记器,- java.text和其他标准工具,在这样的上下文中功能太有限了。

因此,我建议您使用正则表达式 (java.util.regex),并根据需要创建自己的记号赋予器。

P.S.根据您的需要-您可以创建状态机解析器来识别原始文本中的模板化部分。您可能会在下图中看到简单的状态机识别器(您可以构造更高级的解析器,它可以识别文本中更复杂的模板)。

票数 10
EN

Stack Overflow用户

发布于 2011-07-26 06:07:47

看起来你在找一个Named Entity Recogniser

你有几个选择。

来自斯坦福自然语言处理小组的CRFClassifier是命名实体识别器的Java实现。

GATE (General Architecture for Text Engineering),一个用于语言处理的开源套件。看看开发人员页面上的屏幕截图:http://gate.ac.uk/family/developer.html。它应该会让你对它能做什么有个大概的了解。video tutorial可以让您更好地了解该软件所提供的功能。

您可能需要自定义其中一个以满足您的需求。

您还可以选择其他选项:

通过网络服务进行简单的文本提取:例如,从文本中提取词性(例如,动词、名词)的Yahoo's Term Extractor.

在CRFClassifier培训方面,您可以找到一个brief explanation at their FAQ

...the training数据应位于制表符分隔的列中,您可以通过映射定义这些列的含义。其中一列应该称为"answer“,并且具有NER类,并且现有的特性知道诸如"word”和"tag“之类的名称。您可以通过属性文件定义数据文件、地图和要生成的要素。关于不同属性在NERFeatureFactory的Javadoc中生成的特性,有相当多的文档,尽管最终您必须转到源代码来回答一些问题……

您还可以在javadoc of CRFClassifier上找到代码片段

典型的命令行用法

对于在文本文件上使用提供的序列化分类器运行训练的模型:

java -mx500m edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier conll.ner.gz -textFile samplesentences.txt

在属性文件(训练、测试或运行时)中指定所有参数时:

java -mx1g edu.stanford.nlp.ie.crf.CRFClassifier -prop propFile

从命令行训练和测试一个简单的NER模型:

java -mx1000m edu.stanford.nlp.ie.crf.CRFClassifier -trainFile trainFile -testFile testFile -macro > output

票数 26
EN

Stack Overflow用户

发布于 2011-07-24 00:11:11

如果您正在处理大量数据,也许Apache的Lucene将帮助您满足您的需求。

否则,最简单的方法可能就是创建您自己的Analyzer类,它严重依赖于标准模式类。这样,你就可以控制什么文本被认为是单词、边界、数字、日期等。例如,20110723是日期还是数字?您可能需要实现多遍解析算法来更好地“理解”数据。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6800509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档