精华内容
下载资源
问答
  • Fast Entity Linker 用于训练模型,以将实体链接到文档和查询中的知识库(维基百科),是一款无监督、准确、可扩展多语言实体名称识别和链接系统,同时包含英语、西班牙语和中文数据包。在算法上,使用了实体嵌入,...
  • 使用斯坦福大学的分词器,下载地址http://nlp.stanford.edu/software/segmenter.shtml,从上面链接中下载stanford-segmenter-2014-10-26,解压之后,如下图所示 data目录下有两个gz压缩文件,分别是ctb.gz和pku....

    一、     系统配置

    Eclipseluna、 JDK 1.8+

    二、分词介绍

    使用斯坦福大学的分词器,下载地址http://nlp.stanford.edu/software/segmenter.shtml,从上面链接中下载stanford-segmenter-2014-10-26,解压之后,如下图所示



    data目录下有两个gz压缩文件,分别是ctb.gz和pku.gz,其中CTB:宾州大学的中国树库训练资料 ,PKU:中国北京大学提供的训练资料。


    三、     NER

    使用斯坦福大学的NER,下载地址:http://nlp.stanford.edu/software/CRF-NER.shtml,在该页面下分别下载stanford-ner-2014-10-26和stanford-ner-2012-11-11-chinese两个包。

    解压后分别可以看到:




    同时下载commons-io-2.4.jar、commons-lang3-3.3.2.jar、junit-4.10.jar三个Java包。

    四、     中文命名实体识别

    新建Java项目,将data目录拷贝到项目根路径下,再把stanford-ner-2012-11-11-chinese解压的内容全部拷贝到classifiers文件夹下,将第三步中的三个Java包以及stanford NER和分词器的Java包都导入classpath中,然后,在:http://nlp.stanford.edu/software/ corenlp.shtml下载stanford-corenlp-full-2014-10-31,将解压之后的stanford-corenlp-3.5.0也加入到classpath之中。将stanfordner中src添加到项目目录下,并添加一下两个代码:


    ExtractDemo.java

    importedu.stanford.nlp.ie.AbstractSequenceClassifier;

    importedu.stanford.nlp.ie.crf.CRFClassifier;

    importedu.stanford.nlp.ling.CoreLabel;

     

    /*

    ClassNameExtractDemo

    加载NER模块

    */

       publicclassExtractDemo

       {

       privatestaticAbstractSequenceClassifier<CoreLabel>ner;

       publicExtractDemo()

          {

          InitNer();

          }

       publicvoidInitNer()

       {

          String serializedClassifier ="classifiers/chinese.misc.distsim.crf.ser.gz";//chinese.misc.distsim.crf.ser.gz

          if (ner ==null)

             {

             ner =CRFClassifier.getClassifierNoExceptions(serializedClassifier);

             }

       }

       public StringdoNer(Stringsent)

          {

          returnner.classifyWithInlineXML(sent);

          }

       publicstaticvoid main(Stringargs[])

          {

          String str = "今天下雨,不去打球。";

          ExtractDemoextractDemo =newExtractDemo();    System.out.println(extractDemo.doNer(str));

          System.out.println("Complete!");

          }

    }

     

     

    ZH_SegDemo.java

     

    importjava.io.File;

    importjava.io.IOException;

    importjava.util.Properties;

    importorg.apache.commons.io.FileUtils;

    importedu.stanford.nlp.ie.crf.CRFClassifier;

    importedu.stanford.nlp.ling.CoreLabel;

    /*

    * ClassNameZH_SegDemo

    * Description 使用StanfordCoreNLP进行中文实体识别

    */

    public class ZH_SegDemo {

    public staticCRFClassifier<CoreLabel>segmenter;

    static {

    // 设置一些初始化参数

    Propertiesprops = new Properties();

    props.setProperty("sighanCorporaDict","data");

    props.setProperty("serDictionary","data/dict-chris6.ser.gz");

    props.setProperty("inputEncoding","UTF-8");

    props.setProperty("sighanPostProcessing","true");

    segmenter = newCRFClassifier<CoreLabel>(props);

    segmenter.loadClassifierNoExceptions("data/ctb.gz",props);

    segmenter.flags.setProperties(props);

    }

    public static String doSegment(String sent) {

    String[] strs =(String[]) segmenter.segmentString(sent).toArray();

    StringBufferbuf= new StringBuffer();

    for (String s :strs) {

    buf.append(s +" ");

    }

    System.out.println("segmentedres: " + buf.toString());

    returnbuf.toString();

    }

    public staticvoid main(String[] args) {

    try {

    StringreadFileToString = FileUtils.readFileToString(newFile("IFENG-8.txt"));

    StringdoSegment = doSegment(readFileToString);

    System.out.println(doSegment);

    ExtractDemoextractDemo= new ExtractDemo();

    System.out.println(extractDemo.doNer(doSegment));

    System.out.println("Complete!");

    } catch(IOException e) {

    e.printStackTrace();

    }

    }

    }

    最后项目结构如下:


    运行结果如下:


    展开全文
  • python CRF中文分词(crf++工具) 用CRF做命名实体识别(一) CRF++使用简介(windows下非接口) 【实战】运用CRF++进行实体识别实战 windows 用户 crfpp 安装以及导入到 python 本文仅做学习使用,若侵权,留言秒删...

    CRF++训练中文命名实体识别

    本文不涉及任何知识点的介绍,有兴趣自行查询。完全从小白到命名实体识别训练

    参考文章如下:
    python CRF中文分词(crf++工具)
    用CRF做命名实体识别(一)
    CRF++使用简介(windows下非接口)
    【实战】运用CRF++进行实体识别实战
    windows 用户 crfpp 安装以及导入到 python
    本文仅做学习使用,若侵权,留言秒删,

    1、首先创建语料

    以十个数学题目为例,文本以txt形式保存:

    文本自取:链接:https://pan.baidu.com/s/1o45y3xgtnyfifuC3c7e9fQ
    提取码:ho22

    内容如下图,每一个题目为一行,并对需要识别的语料打上标签,左右以空格隔开:
    在这里插入图片描述
    然后通过以下代码将语料转换为CRF++能够识别的文本形式,文本以data形式保存:

    import codecs
    
    def character_tagging(input_file, output_file):
        input_data = codecs.open(input_file, 'r', 'utf-8')
        output_data = codecs.open(output_file, 'w', 'utf-8')
        for line in input_data.readlines():
            word_list = line.strip().split()
            for word in word_list:
                if "/" in word:
                    word_lines = word.split("/")
                    output_data.write(word_lines[0][0] + "\tB_%s\n" % word_lines[1])
                    for w in word_lines[0][1:len(word_lines[0]) - 1]:
                        output_data.write(w + "\tM_%s\n" % word_lines[1])
                    output_data.write(word_lines[0][len(word_lines[0]) - 1] + "\tE_%s\n" % word_lines[1])
                else:
                    for w in word:
                        output_data.write(w + "\tO\n")
            output_data.write('\n')
        input_data.close()
        output_data.close()
    
    if __name__ == "__main__":
        input_file = r"train_data.txt"
        output_file = r"train.data"
        character_tagging(input_file, output_file)
    
    

    文本保存形式如下并命名为train.data:

    所有的十个题目进行转换后保存进一个文本里面,并且每行只有一个(标签除外)

    O:表示其他、B:表示实体开始、M:表示实体中间、E:表示实体结束(这里有涉及相关知识点,自行查阅
    在这里插入图片描述

    2、下载CRF++0.58

    链接:https://pan.baidu.com/s/1YwVmt5cBzrRX6L1T_VX5-Q
    提取码:6n36

    文件夹格式如下,随便你放那个盘,(这里不对这些内容作介绍,自行了解):
    在这里插入图片描述

    并在该文件夹下创建新的文件夹命名为chinese(或者其他地方其他名字,无所谓),下面图中下半部分标记的文件复制后拖入chinese文件夹中:
    在这里插入图片描述
    以及在chinese文件夹将template文本创建(不要txt,data等格式,文本输入template后直接保存),内容如下(为什么这个样子,有兴趣自行查阅):

    # Unigram
    U01:%x[-1,0]
    U02:%x[0,0]
    U03:%x[1,0]
    U04:%x[2,0]
    U05:%x[-2,0]
    U06:%x[0,0]/%x[-1,0]
    U07:%x[0,0]/%x[1,0]
    U08:%x[-1,0]/%x[-2,0]
    U09:%x[1,0]/%x[2,0]
    U10:%x[-1,0]/%x[1,0]
    
    # Bigram
    B
    

    最后将前面的train.data拖入chinese文件夹后,里面的内容如下:
    在这里插入图片描述

    3、训练

    输入win+r输入cmd或者shift+右击打开powershell输入cd …/chinese命名行,并输入如下命名:

    crf_learn template train.data model 更改为 .\crf_learn template train.data model
    

    将出现如下错误:
    在这里插入图片描述
    按提示更改:
    在这里插入图片描述
    最后文件夹下生成model文件:
    在这里插入图片描述
    建立新文件夹(命名自己想)将model文件拖进去,并创建如下py文件(这里涉及CRFPP的windows版本安装,请自行百度):

    import CRFPP
    import sys
    import re
    
    class crf_ner:
        def __init__(self,model_path):
            self.model_path = model_path
    
            self.tagger = self.load_model()
    
        def load_model(self):
            cmd = '-m' + ' ' + self.model_path + ' ' + '-v 3 -n2'
            try:
                tagger = CRFPP.Tagger(cmd)
            except RuntimeError as e:
                print("RuntimeError: ", e)
            tagger.clear()
            return tagger
    
        def parase_sentence(self,sentence):
    
            assert len(sentence) > 0
            for word in sentence:
                self.tagger.add(word)
            self.tagger.parse()
            size = self.tagger.size()
            x_size = self.tagger.xsize()
            res = []
            words = ""
            label = ""
            for i in range(0,size):
                for j in range(0,x_size):
                    char = self.tagger.x(i,j)
                    tag = self.tagger.y2(i)
                    # print('char ' + char)
                    # print('tag ' + tag)
                    if tag[0] == 'B':
                        label = re.sub('B_','',tag)
                        words = char
                    elif tag[0] == 'M':
                        words+=char
    
                    elif tag[0] == 'E':
                        words += char
                        res.append((words, label))
    
                        label = ''
                        words = ''
                    elif tag[0] == 'S':
                        label = re.sub('S_', '', tag)
                        res.append((char, label))
                        label = ""
                    else:
                        continue
            if words:
                res.append((words,label))
            self.tagger.clear()
            return res
    
    
    if __name__ == '__main__':
        crfpp_ner = crf_ner('model') #model路径改为自己的model路径
        string = '在三角形ABC中,AB垂直于BC,AB=3,BC=4,求该三角形的面积'
        ret = crfpp_ner.parase_sentence(string)
    
        print(ret)
    

    运行后会生成如下结果:
    在这里插入图片描述
    表明初步运行成功,进阶的我也还走完,里面的知识点我也不明白。
    可能有些朋友会需要到model文件,这里贴出百度链接:https://pan.baidu.com/s/1lKl0edbOi8Xgmt7muL2kdw
    提取码:1xyc
    由于最近主要方向没有在NER方向,有疑问的小伙伴可以私信我问题,如果有需要我可以再进一步去学习该方向的知识,然后整理好发布出来。

    展开全文
  • CRF++(Windows下)中文命名实体识别学习记录使用CRF++的工具包CRF分词原理准备语料特征模板训练测试评估标注结果 使用CRF++的工具包 windows版本的可直接下载解压,不需要安装。我下载的是0.58版,注意zip哦,...

    使用CRF++的工具包

    windows版本的可直接下载解压,不需要安装。我下载的是0.58版,注意zip哦,Windows用zip。下载链接: link.
    文件里面大致是关于啥的呐:
    doc文件夹:官方主页的内容。
    example文件夹:有四个任务的训练数据、测试数据和模板文件。
    sdk文件夹:CRF++的头文件和静态链接库。
    crf_learn.exe:CRF++的训练程序。
    crf_test.exe:CRF++的测试程序
    libcrfpp.dll:训练程序和测试程序需要使用的静态链接库

    下载后可先用example中chunking文件夹,做一下测试。其中原有4个文件:
    exec.sh:训练和测试脚本
    template:特征模版
    test.data:测试数据
    train.data:训练数据
    把下载的CRF++的工具包里面的crf_learn.exe,crf_test.exe 和libcrfpp.dll文件复制到要操作的目录下面就可以调用命令了。

    CRF分词原理

    CRF把分词当做字的词位分类问题,通常定义字的词位信息如下:

         词首,常用B表示
    
         词中,常用M表示
    
         词尾,常用E表示
    
         单字词,常用S表示
    

    准备语料

    我直接下载好前人标注好的数据了,大家可自行选择。它是长这样的:
    在这里插入图片描述

    特征模板

    新建一个名为template1的文件用于构建模板,只采用了字为特征,所以创建的模板也很简单:
    下面展示 template1

    # Unigram
    
    U00:%x[-2,0] 上上个字
    U01:%x[-1,0] 上个字
    U02:%x[0,0]  当前字
    U03:%x[1,0]  下个字
    U04:%x[2,0]  下下个字
    U05:%x[-1,0]/%x[0,0] 上个字和当前字
    U06:%x[0,0]/%x[1,0] 当前字和下个字
    
    # Bigram
    B
    

    %x[row,column]代表的是行和列,[-1,0]表示前1个字的第1列,[0,0]当前字的第1列,[1,0]后1个字的第1列。

    训练

    cmd中进入CRF++ -0.58所在的文件夹(cd CRF++ -0.58所在目录),使用
    crf_learn <模板> <训练语料> <模板文件>
    crf_learn template1 dev.data model 训练数据 :
     训练数据视图

    测试

    crf_test -m model dev.data >output2.txt 测试数据,具体效果如下:
    测试数据
    得到的结果格式是在原有的两列后再增加一列,是通过训练的模型对测试数据中的文字进行的标注结果。

    评估标注结果

    验证就是比较result文档的后两列数据,统计相同的标签个数或不同的个数,从而得到准确率、召回率、F1值。此处我们调用conlleval.pl对预测结果文件进行评估。下载链接: link.下滑网页,找conlleval.txt,将下载下来的 txt 文档,改名为 conlleval.pl ,然后放到C:\Perl64\eg里,(需安装perl的环境)
    并在cmd里面输入:

    > perl conlleval.pl < result2.txt
    

    测试数据比较少,所以F值高的离谱,结果图仅供参考
    在这里插入图片描述
    【注】:测试结果文件中每行结束均[Tab],要把conlleval.txt中的my $delimiter = " "换成" ",即[空格]——>[Tab]。

    展开全文
  • Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的。 先附上其官网链接: https://stanfordnlp.github.io/CoreNLP/index.html ...

    Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的。

    先附上其官网链接:

    • https://stanfordnlp.github.io/CoreNLP/index.html
    • https://nlp.stanford.edu/nlp/javadoc/javanlp/
    • https://github.com/stanfordnlp/CoreNLP

    本文主要讲解如何在java工程中使用Stanford CoreNLP;

    1.环境准备

    3.5之后的版本都需要java8以上的环境才能运行。需要进行中文处理的话,比较占用内存,3G左右的内存消耗。

    笔者使用的maven进行依赖的引入,使用的是3.9.1版本。

    直接在pom文件中加入下面的依赖:

    <dependency>
                <groupId>edu.stanford.nlp</groupId>
                <artifactId>stanford-corenlp</artifactId>
                <version>3.9.2</version>
            </dependency>
            <dependency>
                <groupId>edu.stanford.nlp</groupId>
                <artifactId>stanford-corenlp</artifactId>
                <version>3.9.2</version>
                <classifier>models</classifier>
            </dependency>
            <dependency>
                <groupId>edu.stanford.nlp</groupId>
                <artifactId>stanford-corenlp</artifactId>
                <version>3.9.2</version>
                <classifier>models-chinese</classifier>
            </dependency>

    3个包分别是CoreNLP的算法包、英文语料包、中文预料包。这3个包的总大小为1.43G。maven默认镜像在国外,而这几个依赖包特别大,可以找有着三个依赖的国内镜像试一下。笔者用的是自己公司的maven仓库。

    2.代码调用

    需要注意的是,因为我是需要进行中文的命名实体识别,因此需要使用中文分词和中文的词典。

    其中有个StanfordCoreNLP-chinese.properties文件,这里面设定了进行中文自然语言处理的一些参数。主要指定相应的pipeline的操作步骤以及对应的预料文件的位置。实际上我们可能用不到所有的步骤,或者要使用不同的语料库,因此可以自定义配置文件,然后再引入。那在我的项目中,我就直接读取了该properties文件。

    attention:此处笔者要使用的是ner功能,但可能不想使用其他的一些annotation,想去掉。然而,Stanford CoreNLP有一些局限,就是在ner执行之前,一定需要tokenize, ssplit, pos, lemma的引入,当然这增加了很大的时间耗时。

    其实我们可以先来分析一下这个properties文件:

    # Pipeline options - lemma is no-op for Chinese but currently needed because coref demands it (bad old requirements system)
    annotators = tokenize, ssplit, pos, lemma, ner, parse, coref
    
    # segment
    tokenize.language = zh
    segment.model = edu/stanford/nlp/models/segmenter/chinese/ctb.gz
    segment.sighanCorporaDict = edu/stanford/nlp/models/segmenter/chinese
    segment.serDictionary = edu/stanford/nlp/models/segmenter/chinese/dict-chris6.ser.gz
    segment.sighanPostProcessing = true
    
    # sentence split
    ssplit.boundaryTokenRegex = [.。]|[!?!?]+
    
    # pos
    pos.model = edu/stanford/nlp/models/pos-tagger/chinese-distsim/chinese-distsim.tagger
    
    # ner 此处设定了ner使用的语言、模型(crf),目前SUTime只支持英文,不支持中文,所以设置为false。
    ner.language = chinese
    ner.model = edu/stanford/nlp/models/ner/chinese.misc.distsim.crf.ser.gz
    ner.applyNumericClassifiers = true
    ner.useSUTime = false
    
    # regexner
    ner.fine.regexner.mapping = edu/stanford/nlp/models/kbp/chinese/cn_regexner_mapping.tab
    ner.fine.regexner.noDefaultOverwriteLabels = CITY,COUNTRY,STATE_OR_PROVINCE
    
    # parse
    parse.model = edu/stanford/nlp/models/srparser/chineseSR.ser.gz
    
    # depparse
    depparse.model    = edu/stanford/nlp/models/parser/nndep/UD_Chinese.gz
    depparse.language = chinese
    
    # coref
    coref.sieves = ChineseHeadMatch, ExactStringMatch, PreciseConstructs, StrictHeadMatch1, StrictHeadMatch2, StrictHeadMatch3, StrictHeadMatch4, PronounMatch
    coref.input.type = raw
    coref.postprocessing = true
    coref.calculateFeatureImportance = false
    coref.useConstituencyTree = true
    coref.useSemantics = false
    coref.algorithm = hybrid
    coref.path.word2vec =
    coref.language = zh
    coref.defaultPronounAgreement = true
    coref.zh.dict = edu/stanford/nlp/models/dcoref/zh-attributes.txt.gz
    coref.print.md.log = false
    coref.md.type = RULE
    coref.md.liberalChineseMD = false
    
    # kbp
    kbp.semgrex = edu/stanford/nlp/models/kbp/chinese/semgrex
    kbp.tokensregex = edu/stanford/nlp/models/kbp/chinese/tokensregex
    kbp.language = zh
    kbp.model = none
    
    # entitylink
    entitylink.wikidict = edu/stanford/nlp/models/kbp/chinese/wikidict_chinese.tsv.gz

    那我们就直接在代码中引入这个properties文件,参考代码如下:

    package com.baidu.corenlp;
    
    import java.util.List;
    import java.util.Map;
    import java.util.Properties;
    
    import edu.stanford.nlp.coref.CorefCoreAnnotations;
    import edu.stanford.nlp.coref.data.CorefChain;
    import edu.stanford.nlp.ling.CoreAnnotations;
    import edu.stanford.nlp.ling.CoreLabel;
    import edu.stanford.nlp.pipeline.Annotation;
    import edu.stanford.nlp.pipeline.StanfordCoreNLP;
    import edu.stanford.nlp.semgraph.SemanticGraph;
    import edu.stanford.nlp.semgraph.SemanticGraphCoreAnnotations;
    import edu.stanford.nlp.trees.Tree;
    import edu.stanford.nlp.trees.TreeCoreAnnotations;
    import edu.stanford.nlp.util.CoreMap;
    
    /**
     * Created by sonofelice on 2018/3/27.
     */
    public class TestNLP {
        public void test() throws Exception {
            //构造一个StanfordCoreNLP对象,配置NLP的功能,如lemma是词干化,ner是命名实体识别等
            Properties props = new Properties();
            props.load(this.getClass().getResourceAsStream("/StanfordCoreNLP-chinese.properties"));
            StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
            String text = "袁隆平是中国科学院的院士,他于2009年10月到中国山东省东营市东营区永乐机场附近承包了一千亩盐碱地,"
                    + "开始种植棉花, 年产量达到一万吨, 哈哈, 反正棣琦说的是假的,逗你玩儿,明天下午2点来我家吃饭吧。"
                    + "棣琦是山东大学毕业的,目前在百度做java开发,位置是东北旺东路102号院,手机号14366778890";
    
            long startTime = System.currentTimeMillis();
            // 创造一个空的Annotation对象
            Annotation document = new Annotation(text);
    
            // 对文本进行分析
            pipeline.annotate(document);
    
            //获取文本处理结果
            List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
            for (CoreMap sentence : sentences) {
                // traversing the words in the current sentence
                // a CoreLabel is a CoreMap with additional token-specific methods
                for (CoreLabel token : sentence.get(CoreAnnotations.TokensAnnotation.class)) {
                    //                // 获取句子的token(可以是作为分词后的词语)
                    String word = token.get(CoreAnnotations.TextAnnotation.class);
                    System.out.println(word);
                    //词性标注
                    String pos = token.get(CoreAnnotations.PartOfSpeechAnnotation.class);
                    System.out.println(pos);
                    // 命名实体识别
                    String ne = token.get(CoreAnnotations.NormalizedNamedEntityTagAnnotation.class);
                    String ner = token.get(CoreAnnotations.NamedEntityTagAnnotation.class);
                    System.out.println(word + " | analysis : {  original : " + ner + "," + " normalized : "
                            + ne + "}");
                    //词干化处理
                    String lema = token.get(CoreAnnotations.LemmaAnnotation.class);
                    System.out.println(lema);
                }
    
                // 句子的解析树
                Tree tree = sentence.get(TreeCoreAnnotations.TreeAnnotation.class);
                System.out.println("句子的解析树:");
                tree.pennPrint();
    
                // 句子的依赖图
                SemanticGraph graph =
                        sentence.get(SemanticGraphCoreAnnotations.CollapsedCCProcessedDependenciesAnnotation.class);
                System.out.println("句子的依赖图");
                System.out.println(graph.toString(SemanticGraph.OutputFormat.LIST));
    
            }
    
            long endTime = System.currentTimeMillis();
            long time = endTime - startTime;
            System.out.println("The analysis lasts " + time + " seconds * 1000");
    
            // 指代词链
            //每条链保存指代的集合
            // 句子和偏移量都从1开始
            Map<Integer, CorefChain> corefChains = document.get(CorefCoreAnnotations.CorefChainAnnotation.class);
            if (corefChains == null) {
                return;
            }
            for (Map.Entry<Integer, CorefChain> entry : corefChains.entrySet()) {
                System.out.println("Chain " + entry.getKey() + " ");
                for (CorefChain.CorefMention m : entry.getValue().getMentionsInTextualOrder()) {
                    // We need to subtract one since the indices count from 1 but the Lists start from 0
                    List<CoreLabel> tokens = sentences.get(m.sentNum - 1).get(CoreAnnotations.TokensAnnotation.class);
                    // We subtract two for end: one for 0-based indexing, and one because we want last token of mention 
                    // not one following.
                    System.out.println(
                            "  " + m + ", i.e., 0-based character offsets [" + tokens.get(m.startIndex - 1).beginPosition()
                                    +
                                    ", " + tokens.get(m.endIndex - 2).endPosition() + ")");
                }
            }
        }
    }
    
    
    public static void main(String[] args) throws  Exception {
        TestNLP nlp=new TestNLP();
        nlp.test();
    }

     当然,我在运行过程中,只保留了ner相关的分析,别的功能注释掉了。输出结果如下:

    19:46:16.000 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator pos
    19:46:19.387 [main] INFO  e.s.nlp.tagger.maxent.MaxentTagger - Loading POS tagger from edu/stanford/nlp/models/pos-tagger/chinese-distsim/chinese-distsim.tagger ... done [3.4 sec].
    19:46:19.388 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator lemma
    19:46:19.389 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator ner
    19:46:21.938 [main] INFO  e.s.n.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/chinese.misc.distsim.crf.ser.gz ... done [2.5 sec].
    19:46:22.099 [main] WARN  e.s.n.p.TokensRegexNERAnnotator - TokensRegexNERAnnotator ner.fine.regexner: Entry has multiple types for ner: 巴伐利亚 STATE_OR_PROVINCE    MISC,GPE,LOCATION    1.  Taking type to be MISC
    19:46:22.100 [main] WARN  e.s.n.p.TokensRegexNERAnnotator - TokensRegexNERAnnotator ner.fine.regexner: Entry has multiple types for ner: 巴伐利亚 州 STATE_OR_PROVINCE    MISC,GPE,LOCATION    1.  Taking type to be MISC
    19:46:22.100 [main] INFO  e.s.n.p.TokensRegexNERAnnotator - TokensRegexNERAnnotator ner.fine.regexner: Read 21238 unique entries out of 21249 from edu/stanford/nlp/models/kbp/chinese/cn_regexner_mapping.tab, 0 TokensRegex patterns.
    19:46:22.532 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator parse
    19:46:35.855 [main] INFO  e.s.nlp.parser.common.ParserGrammar - Loading parser from serialized file edu/stanford/nlp/models/srparser/chineseSR.ser.gz ... done [13.3 sec].
    19:46:35.859 [main] INFO  e.s.nlp.pipeline.StanfordCoreNLP - Adding annotator coref
    19:46:43.139 [main] INFO  e.s.n.pipeline.CorefMentionAnnotator - Using mention detector type: rule
    19:46:43.148 [main] INFO  e.s.nlp.wordseg.ChineseDictionary - Loading Chinese dictionaries from 1 file:
    19:46:43.148 [main] INFO  e.s.nlp.wordseg.ChineseDictionary -   edu/stanford/nlp/models/segmenter/chinese/dict-chris6.ser.gz
    19:46:43.329 [main] INFO  e.s.nlp.wordseg.ChineseDictionary - Done. Unique words in ChineseDictionary is: 423200.
    19:46:43.379 [main] INFO  edu.stanford.nlp.wordseg.CorpusChar - Loading character dictionary file from edu/stanford/nlp/models/segmenter/chinese/dict/character_list [done].
    19:46:43.380 [main] INFO  e.s.nlp.wordseg.AffixDictionary - Loading affix dictionary from edu/stanford/nlp/models/segmenter/chinese/dict/in.ctb [done].
    袁隆平 | analysis : {  original : PERSON, normalized : null}
    是 | analysis : {  original : O, normalized : null}
    中国 | analysis : {  original : ORGANIZATION, normalized : null}
    科学院 | analysis : {  original : ORGANIZATION, normalized : null}
    的 | analysis : {  original : O, normalized : null}
    院士 | analysis : {  original : TITLE, normalized : null}
    , | analysis : {  original : O, normalized : null}
    他 | analysis : {  original : O, normalized : null}
    于 | analysis : {  original : O, normalized : null}
    2009年 | analysis : {  original : DATE, normalized : 2009-10-XX}
    10月 | analysis : {  original : DATE, normalized : 2009-10-XX}
    到 | analysis : {  original : O, normalized : null}
    中国 | analysis : {  original : COUNTRY, normalized : null}
    山东省 | analysis : {  original : STATE_OR_PROVINCE, normalized : null}
    东营市 | analysis : {  original : CITY, normalized : null}
    东营区 | analysis : {  original : FACILITY, normalized : null}
    永乐 | analysis : {  original : FACILITY, normalized : null}
    机场 | analysis : {  original : FACILITY, normalized : null}
    附近 | analysis : {  original : O, normalized : null}
    承包 | analysis : {  original : O, normalized : null}
    了 | analysis : {  original : O, normalized : null}
    一千 | analysis : {  original : NUMBER, normalized : 1000}
    亩 | analysis : {  original : O, normalized : null}
    盐 | analysis : {  original : O, normalized : null}
    碱地 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    开始 | analysis : {  original : O, normalized : null}
    种植 | analysis : {  original : O, normalized : null}
    棉花 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    年产量 | analysis : {  original : O, normalized : null}
    达到 | analysis : {  original : O, normalized : null}
    一万 | analysis : {  original : NUMBER, normalized : 10000}
    吨 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    哈哈 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    反正 | analysis : {  original : O, normalized : null}
    棣琦 | analysis : {  original : PERSON, normalized : null}
    说 | analysis : {  original : O, normalized : null}
    的 | analysis : {  original : O, normalized : null}
    是 | analysis : {  original : O, normalized : null}
    假 | analysis : {  original : O, normalized : null}
    的 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    逗 | analysis : {  original : O, normalized : null}
    你 | analysis : {  original : O, normalized : null}
    玩儿 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    明天 | analysis : {  original : DATE, normalized : XXXX-XX-XX}
    下午 | analysis : {  original : TIME, normalized : null}
    2点 | analysis : {  original : TIME, normalized : null}
    来 | analysis : {  original : O, normalized : null}
    我 | analysis : {  original : O, normalized : null}
    家 | analysis : {  original : O, normalized : null}
    吃饭 | analysis : {  original : O, normalized : null}
    吧 | analysis : {  original : O, normalized : null}
    。 | analysis : {  original : O, normalized : null}
    棣琦 | analysis : {  original : PERSON, normalized : null}
    是 | analysis : {  original : O, normalized : null}
    山东 | analysis : {  original : ORGANIZATION, normalized : null}
    大学 | analysis : {  original : ORGANIZATION, normalized : null}
    毕业 | analysis : {  original : O, normalized : null}
    的 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    目前 | analysis : {  original : DATE, normalized : null}
    在 | analysis : {  original : O, normalized : null}
    百度 | analysis : {  original : ORGANIZATION, normalized : null}
    做 | analysis : {  original : O, normalized : null}
    java | analysis : {  original : O, normalized : null}
    开发 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    位置 | analysis : {  original : O, normalized : null}
    是 | analysis : {  original : O, normalized : null}
    东北 | analysis : {  original : LOCATION, normalized : null}
    旺 | analysis : {  original : O, normalized : null}
    东路 | analysis : {  original : O, normalized : null}
    102 | analysis : {  original : NUMBER, normalized : 102}
    号院 | analysis : {  original : O, normalized : null}
    , | analysis : {  original : O, normalized : null}
    手机号 | analysis : {  original : O, normalized : null}
    143667788 | analysis : {  original : NUMBER, normalized : 14366778890}
    90 | analysis : {  original : NUMBER, normalized : 14366778890}
    The analysis lasts 819 seconds * 1000
    
    Process finished with exit code 0

    我们可以看到,整个工程的启动耗时还是挺久的。分析过程也比较耗时,819毫秒。

    并且结果也不够准确,跟我在其官网在线demo得到的结果还是有些差异的:

    展开全文
  • 很多童鞋会到品牌方实体店去体验体验试用试用,同理,大家也免不了要体验试用下各个BI数据产品,如果每个都自己部署安装太麻烦了,这里尝试做一个体验试用中心方便大家。在线文档地址链接,P...
  • 最近需要使用维基百科中文语料做实体链接,内容涉及到繁体和简体之间的转换,这才有了下文 openCC( open chinese convert) 开源的语言转换器,支持转换范围:简明中文,繁体,日语汉字 支持字符级别、短语级别的...
  • 相关链接 ICTCLAS1.主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典; 2.ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M,是当前世界上最好的...
  • MAPGIS地质制图工具

    2013-05-06 16:15:30
    答:没有在mapgis环境下缺少基本组件和动态链接库,运行程序会出现此提示,把section.exe放入MapGis67\program目录内即可。 0327d正式版0612 软件更新日志 1、修正不能删除角度花纹有残留的Bug; 0327d(beta3)0530 1...
  • 中文名: AutoCAD 2004中文版绘图培训教程 作者: 邢晓林 曹延芬资源格式: PDF 版本: 扫描版 出版社: 中国铁道出版社书号: 7113056652发行时间: 2004年 地区: 大陆 语言: 简体中文 简介: 内容简介: AutoCAD 2004...
  • 文章目录制作 U 盘启动盘安装系统配置系统配置国内镜像源配置 sudo安装显卡驱动配置 X Window安装桌面解决 FreeBSD 上的中文乱码问题 制作 U 盘启动盘 我制作 U 盘启动盘的系统是 Windows 所以就用 Rufus 工具来...
  • 原文链接:https://flashgene.com/archives/46041.html 本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言...文章前半部分内容先介绍哈工大 pytltp 工具,包括安装过程、中文分词、词性标注和实体识别的一
  • Analyst’s Notebook 是强大的...您可在图表上新增实体 ( 例 : 人、场地、事件 ),加上链接表示他们之间的关 系 ,可利用分析工具深入分析图表,( 例 : 列出项目,过滤,直方图,社会网 络分析 ),还可显示隐藏的信息。
  • AutoCAD2015中文版下载与安装

    千次阅读 2019-04-29 14:40:06
    而且具有丰富的绘图和绘图辅助功能,如实体绘制、关键点编辑、对象捕捉、标注、鸟瞰显示控制等,它的工具栏、菜单设计、对话框、图形打开预览、信息交换、文本编辑、图像处理和图形的输出预览为用户的绘图带来很大...
  • fckconfig.js中文注释

    2009-10-13 14:55:32
    FckEditor V2.6 fckconfig.js中文注释 1. FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称 2. FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // ...
  • 目前市面上有很多代码生成工具,简单的只把表映射成实体类,mybatis.xml等。比较舒服一点的就会帮你把简单的crud操作以及前端页面生成好。本文为大家带来的是jeecg的搭建,后期会逐步更新日常开发中如何使用。第一弹...
  • LuceneInAction(第2版)_中文

    千次下载 热门讨论 2012-07-12 09:52:59
    9.3.2 将WordNet同义词链接到分析器中 287 9.4 基于内存的快速索引 289 9.5 XML QueryParser:超出“one box”的搜索接口 289 9.5.1 使用XmlQueryParser 291 9.5.2 扩展XML查询语法 295 9.6 外围查询语言 296 ...
  • 说明--TCPIP高效编程:改善网络程序的44个技巧 PDF中文版带书签-目录 下载链接放在文档中 《TCP/IP高效编程:改善网络程序的44个技巧》是TCP/IP 领域历久弥新的经典著作,网络编程人员必备,对TCP/IP 网络编程中存在...
  • Lucene实战(第2版) 中文

    热门讨论 2013-03-20 11:04:29
    9.3.2 将wordnet同义词链接到分析器中 9.4 基于内存的快速索引 9.5 xml queryparser:超出“one box”的搜索接口 9.5.1 使用xmlqueryparser 9.5.2 扩展xml查询语法 9.6 外围查询语言 9.7 spatial lucene ...
  • Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...
  • 现为ACM会员、中国中文信息学会理事、中文信息学会信息检索专委会委员、《中文信息学报》编委、中国计算机学会高级会员及计算机学会中文信息处理专委会委员。自2006年起在中国科学院研究生院(现改名“中国科学院...
  • 现为ACM会员、中国中文信息学会理事、中文信息学会信息检索专委会委员、《中文信息学报》编委、中国计算机学会高级会员及计算机学会中文信息处理专委会委员。自2006年起在中国科学院研究生院(现改名“中国科学院...
  • 因为工作需要,调研了一下Stanford coreNLP的命名实体识别功能。 Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的。 先附上其官网链接: ...
  • 自然语言处理 其他

    2018-08-09 17:03:41
    Python调用PYNIPIR(ICTCLAS)进行中文分词这里写链接内容 HanLP训练命名实体识别模型 目前HanLP中的命名实体识别主要通过HMM-角色标注模型来实现,由于这是一整套理论,所以HanLP实现了通用的抽象工具,并且通过...
  • ERNIE、中文对比英文自然语言处理NLP的区别综述、Synonyms中文近义词工具包、HarvestText领域自适应文本挖掘工具(新词发现-情感分析-实体链接等)、word2word:(Python)方便易用的多语言词-词对集:62种语言/3,564...
  • funNLP_fighting41love.tar.gz

    2019-10-20 15:05:11
    实体链接等)、word2word:(Python)方便易用的多语言词-词对集:62种语言/3,564个多语言对、语音识别语料生成工具:从具有音频/字幕的在线视频创建自动语音识别(ASR)语料库、构建医疗实体识别的模型(包含词典和语料...
  • 第一篇文章主要介绍哈工大pytltp工具,包括安装过程、中文分词、词性标注和实体识别等。 [Python知识图谱] 一.哈工大pyltp安装及中文分句、中文分词、导入词典基本用法 参考链接:...
  • Spring+SpringMVC+Mybatis框架集成公共模块,包括公共配置、MybatisGenerator扩展插件、通用BaseService、工具类等。 zheng-admin 基于bootstrap实现的响应式Material Design风格的通用后台管理系统,zheng项目...
  • 目前,基于深度学习的HanLP 2.0正处于alpha测试阶段,未来将实现知识图谱、问答系统、自动摘要、文本语义相似度、指代消解、三元组抽取、实体链接等功能。 HanLP的功能包括: 中文分词、词性标注、命名实体识别、...
  • 目录:任务定义简单综述数据集细节总结模型细节总结损失函数计算总结NLP实战-中文命名实体识别条件随机场的理解及BI-LSTM+CRF实战超详综述 | 基于深度学习的命名实体识别目录1. 全文简介NER 任务的常用标注语料现成的...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

中文实体链接工具