`
icenows
  • 浏览: 57386 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类

Stanford中文分词包批量处理的一个示例

阅读更多

抱怨了很久的分词问题,后来发现Stanford的一个中文分词软件非常不错,就想拿来看看效果怎么样。

由于这个软件实在是太强大了,我也来不及去仔细分析,只是把DEMO研究了一下,看了下相关的3,4个类,利用API写了一段批量处理的示例代码。

——这个分词软件有一个学习的过程,使用条件随机场方法,所以不把这一部分剥离处理恐怕处理大规模数据的时候就太慢了。

直接上代码吧。

package Test;
import java.util.List;
import java.util.Properties;
import java.util.zip.GZIPInputStream;
import java.io.*;
import edu.stanford.nlp.ie.crf.CRFClassifier;
import edu.stanford.nlp.ie.AbstractSequenceClassifier;
/** This is a very simple demo of calling the Chinese Word Segmenter
* programmatically. It assumes an input file in UTF8.
*

 

*
* Usage: java -mx1g -cp seg.jar SegDemo fileName
*

* This will run correctly in the distribution home directory. To
* run in general, the properties for where to find dictionaries or
* normalizations have to be set.
*
* @author Christopher Manning
*/
public class Demo {
Properties props = new Properties(); //设置训练参数
props.setProperty("sighanCorporaDict", "data");
// props.setProperty("NormalizationTable", "data/norm.simp.utf8");
// props.setProperty("normTableEncoding", "UTF-8");
// below is needed because CTBSegDocumentIteratorFactory accesses it
props.setProperty("serDictionary","data/dict-chris6.ser.gz");
props.setProperty("inputEncoding", "UTF-8");
props.setProperty("sighanPostProcessing", "true");
//
CRFClassifier classifier = new CRFClassifier(props); //初始化分类器
classifier.loadClassifierNoExceptions("data/ctb.gz", props); //使用CTB作为训练集,也可以使用pku.gz
// flags must be re-set after data is loaded
classifier.flags.setProperties(props);
//classifier.writeAnswers(classifier.test(args[0]));
// classifier.testAndWriteAnswers(file);
List<string> test=classifier.segmentString("面对新世纪,世界各国人民的共同愿望是:继续发展人类以往创造的一切文明成果,克服20世纪困扰着人类的战争和贫困问题,推进和平与发展的崇高事业,创造一个美好的世界。");<br> //中文分词的输出序列,注意,该方法只适用中文分词,如果是其他语言,建议修改源码,在AbstractSequenceClassifier类中填加一个返回分词结果的方法,参照testAndWriteAnswers方法,将最后的print输出改成return即可。<br> for(int count=0;count<test></test> System.out.println(test.get(count));<br> // classifier.testAndWriteAnswers("/home/xu/sample.base");<br> }<br> }<br></string>
以上是一个小小的实验,其中使用eclipse有一个问题是,这个程序很耗内存的,建议设置run configuration - =Arguments - VM arguments 里添加参数 "-Xmx1024m"。

 

自此,应该知道怎么实现批量处理了。

分享到:
评论

相关推荐

    常用中文分词器及地址链接

    中文分词器是一种非常重要的自然语言处理技术,能够将中文文本分割成单个词语,以便于文本挖掘、信息检索和机器学习等应用。当前有多种中文分词器可供选择,每种分词器都有其特点和优势,本文将对当前常用的中文分词...

    中文分词-哈工大软件学院中文信息处理刘秉权

    中文分词是自然语言处理领域中的基础性工作,尤其在中国这样一个使用复杂汉字的语言环境中,它的意义尤为显著。哈工大软件学院在中文信息处理方面有着深厚的底蕴和卓越的研究成果,为这个领域的进步做出了重要贡献。...

    斯坦福自然语言处理 中文支持jar包 Stanford corenlp models jar

    原网站:https://stanfordnlp.github.io/CoreNLP/ 里面的language support,考虑到需要支持中文的自然语言处理, 但是很难下载下来? 2020/02/28下载。

    Stanford_Parser中文句法分析器使用教程

    下面是一个使用 Stanford Parser 处理中文句子的示例: 输入句子:“一些盗版制品经营者为了应付和躲避打击,经营手法更为隐蔽。” 首先,使用中文分词工具对输入句子进行分词: G:\chinesesegmenter&gt;segment.bat...

    斯坦福NLP相关jar包2018

    自然语言处理(NLP)是计算机科学领域的一个关键分支,主要关注如何使计算机理解、解析、生成和操作人类语言。Stanford NLP是斯坦福大学开发的一套强大的NLP工具包,广泛应用于文本分析、信息抽取、情感分析、机器...

    英文文本分词jar包与代码

    Stanford NLP是一个强大的NLP库,它包含了丰富的分词模型和算法。使用Stanford NLP进行英文分词,首先需要下载对应的jar包,然后通过Java API调用其提供的分词方法。例如: ```java import edu.stanford.nlp....

    编写简单的中文分词程序

    总之,编写一个简单的中文分词程序需要理解分词的基本原理,熟悉C#编程,以及具备一定的文本处理技巧。通过以上步骤,你可以创建一个基本的分词工具,虽然可能无法达到专业级别的精确度,但对于初步的文本分析任务...

    用stanfordCoreNLP进行中文分词时出现json编码错误(csdn)————程序.pdf

    在使用stanfordCoreNLP进行中文分词时,开发者可能会遇到一些常见的问题,尤其是在尝试处理较新版本的软件时。本文将深入探讨标题和描述中提及的“json编码错误”以及如何解决这个问题。 首先,我们需要了解...

    C#下调用Stanford CoreNLP

    在自然语言处理(NLP)领域,Stanford CoreNLP是一个强大的工具,它提供了多种功能,包括分词、词性标注、命名实体识别等。在C#编程环境中,调用Stanford CoreNLP可以帮助开发者处理中文文本,进行复杂的语言分析。...

    PyPI 官网下载 | stanford-corenlp-python-3.3.6-0.linux-x86_64.tar.gz

    标题中的"PyPI 官网下载 | stanford-corenlp-python-3.3.6-0.linux-x86_64.tar.gz"表明这是一个在Python包索引(PyPI)上发布的软件包,用于在Python环境中使用Stanford CoreNLP。PyPI是Python开发者发布自己软件包...

    stanford-corenlp-4.5.6.zip

    斯坦福大学开发的CoreNLP是自然语言处理(NLP)领域的一个强大工具包,它为各种语言处理任务提供了全面的解决方案,包括分词、词性标注、命名实体识别、句法分析、情感分析等。在4.5.6版本中,这一系列功能得到了...

    Python-StanfordNLP适用于多种人类语言的斯坦福NLP官方Python库

    这些功能是通过Python CoreNLP接口与UD v2(Universal Dependencies version 2)结合实现的,UD v2是一个跨语言的树库,用于标注句法结构。 在Python开发中,StanfordNLP库的使用能够极大地简化复杂的自然语言处理...

    Stanford Sentiment Treebank 标准情感数据集

    Stanford Sentiment Treebank 是一个标准情感数据集,主要用于情感分类,其中每个句子分析树的节点均有细粒度的情感注解。 该数据集由斯坦福大学的 NLP 组发布,其中句子和短语共计 239232 条,相较于忽略单词顺序的...

    stanford-corenlp-4.2.2.zip

    斯坦福核心NLP(Stanford CoreNLP)是斯坦福大学开发的一个强大的自然语言处理工具包,它提供了多种功能,如词性标注、命名实体识别、句法分析、情感分析等,广泛应用于学术研究和实际应用中。此次我们关注的是其...

    AIpaca-Stanford-资料包.zip

    《AIpaca-Stanford-资料包》是一个包含丰富人工智能学习资源的压缩文件,源自著名的斯坦福大学。这个资料包可能是为了帮助学生、研究者或对人工智能感兴趣的个人深入了解AIpaca项目,以及它与斯坦福大学的研究关系。...

    hanLP和Stanford corenlp.rar

    相比之下,Stanford CoreNLP是由斯坦福大学开发的一款强大的NLP工具包,同样支持多种语言,但其主要关注英文处理。Stanford CoreNLP提供了一整套完整的NLP任务处理流程,包括分词、词性标注、命名实体识别、依存句法...

    stanford-corenlp-full-2014-08-27

    总的来说,"stanford-corenlp-full-2014-08-27"为开发者和研究人员提供了一个全面的自然语言处理工具箱,对于理解和处理自然语言文本有着巨大的价值。尽管是2014年的版本,但对于许多基础的NLP任务,其性能仍然相当...

    中文分词、词性标注、实体识别的工具整理;相关数据集整理与预处理;通用评测脚本脚本.zip

    压缩包中的"lac_tools_benchment-master"可能是一个包含多种中文NLP工具的基准测试平台,可能包括上述提到的分词、词性标注和实体识别工具,并且提供了一套统一的评估标准和脚本,方便用户对比不同工具的性能,优化...

    基于C#的分词系统,还能去标点和单字词

    总的来说,基于C#的分词系统是一个有价值的工具,它结合了C#的强大功能和NLP的关键任务,使得开发者能够更有效地处理和理解中文文本。无论是为了学习还是实际应用,这个系统都值得我们深入研究。

    斯坦福大学的分词工具

    stanford-ner-2011-06-19 这个压缩包文件很可能是Stanford NER的一个特定版本,包含了工具的源代码、预训练模型以及相关的文档。用户可以通过解压这个文件,了解工具的使用方法,或者利用提供的模型进行实体识别...

Global site tag (gtag.js) - Google Analytics