zoukankan      html  css  js  c++  java
  • NLTK的使用

    安装nltk.参考:http://www.cnblogs.com/kylinsblog/p/7755843.html

    NLTK是Python很强大的第三方库,可以很方便的完成很多自然语言处理(NLP)的任务,包括分词、词性标注、命名实体识别(NER)及句法分析。

    下面介绍如何利用NLTK快速完成NLP基本任务

    一、NLTK进行分词

    用到的函数:

    nltk.sent_tokenize(text) #对文本按照句子进行分割

    nltk.word_tokenize(sent) #对句子进行分词

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    print('nlp2 test')
    import nltk
    text = 'PathonTip.com is a very good website. We can learn a lot from it.'
    #将文本拆分成句子列表
    sens = nltk.sent_tokenize(text)
    print(sens)
    #将句子进行分词,nltk的分词是句子级的,因此要先分句,再逐句分词,否则效果会很差.
    words = []
    for sent in sens:
        words.append(nltk.word_tokenize(sent))
    print(words)

    执行结果:

    二、NLTK进行词性标注

    用到的函数:

    nltk.pos_tag(tokens)#tokens是句子分词后的结果,同样是句子级的标注

    tags = []
    #词性标注要利用上一步分词的结果
    for tokens in words:
        tags.append(nltk.pos_tag(tokens))
    print(tags)

     执行结果:

    三、NLTK进行命名实体识别(NER)

    用到的函数:

    nltk.ne_chunk(tags)#tags是句子词性标注后的结果,同样是句子级

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    print('nlp3 test')
    import nltk
    text = 'Xi is the chairman of China in the year 2013.'
    #分词
    tokens = nltk.word_tokenize(text)
    #词性标注
    tags = nltk.pos_tag(tokens)
    print(tags)
    #NER需要利用词性标注的结果
    ners = nltk.ne_chunk(tags)
    #print('%s---%s' % (str(ners),str(ners.node))) #报错,无解
    #还是直接打印tree吧
    print(ners)

    执行结果:

    上例中,有两个命名实体,一个是Xi,这个应该是PER,被错误识别为GPE了; 另一个事China,被正确识别为GPE。

    四、句法分析

    nltk没有好的parser,推荐使用stanfordparser
    但是nltk有很好的树类,该类用list实现
    可以利用stanfordparser的输出构建一棵python的句法树
    #报错,无解
    #tparse = nltk.tree.Tree.parse
    #修改
    #tree = tparse('(NP (DT the) (JJ fat) (NN man))')
    #tree = nltk.Tree('NP','DT')
    #for subtree in tree:
    #    print(subtree,'---',subtree.node)
    tree1 = nltk.Tree('NP',['Alick'])
    print(tree1)
    tree2 = nltk.Tree('N',['Alick','Rabbit'])
    print(tree2)
    tree3 = nltk.Tree('S',[tree1,tree2])
    print(tree3.label()) #查看树的结点
    tree3.draw()

     执行结果:

  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/kylinsblog/p/7762675.html
Copyright © 2011-2022 走看看