当前位置:   article > 正文

知识图谱 — jieba、pyhanlp、smoothnlp工具实现中文分词(词性表)_pseg更新分词表

pseg更新分词表

        最近也是在预研知识图谱相关技术。这里面涉及到了一些关于自然语言处理方面的内容和技术。目前已经调研了一些分词、命名体识别相关技术。今天记录下分词工具的使用。

一、什么是知识图谱?

        笔者理解的知识图谱是一个巨型的语义网络,形同互联网一样。不过语义网络上每个点是一个实体,两两实体之前存在一条边也就是关系或属性。其实也就是找到一个三元组,类似于(实体、关系、实体)或(实体、属性、属性值)的形式。这里面重要的步骤就是如何把形同这样形式的三元组抽取出来,并且还要保证抽取出三元组的正确性。这无疑是一个巨大的挑战。

二、知识图谱流程图

        流程图是按照自己理解画的,有什么地方不妥欢迎指正!(大佬轻喷)

        

三、知识图谱的框架(工具)有哪些?

        目前了解到已有知识图谱开源框架,如:deepke、bert、cndeepdive等等。

        ①:deepke是浙江大学知识引擎实验室开源的中文关系抽取开源框架。

                该项目的官方地址:https://github.com/zjunlp/deepke/

        ②:bert是谷歌的一个开源框架。

                该项目的官方地址:https://github.com/google-research/bert
        ③:deepdive是斯坦福大学的一个开源知识抽取框架,不过早在2017年就处于维护模式了。

                该项目的官方地址:https://github.com/HazyResearch/deepdive

四:使用工具实现文本分词

        了解到的jieba、pyhanlp、smoothnlp都可以中文分词,下面将一一介绍三个工具。

        ①:jieba分词        

        直接 pip install jieba 安装是很快的。

  1. import jieba
  2. import jieba.posseg as pseg
  3. def postag(text):
  4. words = pseg.cut(text)
  5. return words
  6. # 定义文本
  7. text = 'jieba的主要功能是做中文分词,可以进行简单分词、并行分词、命令行分词,当然它的功能不限于此,目前还支持关键词提取、词性标注、词位置查询等。更让人愉悦的是jieba虽然立足于python,但同样支持其他语言和平台,诸如:C++、Go、R、Rust、Node.js、PHP、 iOS、Android等。所以jieba能满足各类开发者的需求'
  8. # 句子已逗号分隔
  9. jieba_list = []
  10. sentence = text.split('。')
  11. for i in range(len(sentence)):
  12. word = postag(sentence[i]) #分词
  13. for w in word:
  14. # w这里有两个属性,分别为:w.flag==词性;w.word==词
  15. jieba_list.append([w.flag,w.word])
  16. # 输出jieba分词列表
  17. print(jieba_list)

        ②:pyhanlp分词

        值得注意的是运行pyhanlp的时候需要本地按照java环境,因为是它是调用java接口的。

  1. from pyhanlp import *
  2. text = 'jieba的主要功能是做中文分词,可以进行简单分词、并行分词、命令行分词,当然它的功能不限于此,目前还支持关键词提取、词性标注、词位置查询等。更让人愉悦的是jieba虽然立足于python,但同样支持其他语言和平台,诸如:C++、Go、R、Rust、Node.js、PHP、 iOS、Android等。所以jieba能满足各类开发者的需求'
  3. # 句号分割
  4. sentence = text.split('。')
  5. pyhanlp_list = []
  6. for i in range(len(sentence)):
  7. pyhanlp_list.append(HanLP.segment(sentence[i]))
  8. # 输出pyhanlp分词结果
  9. print(pyhanlp_list)

        ③:smoothnlp分词

        这个直接 pip install smoothnlp 即可。

  1. from smoothnlp.algorithm.phrase import extract_phrase
  2. text = 'jieba的主要功能是做中文分词,可以进行简单分词、并行分词、命令行分词,当然它的功能不限于此,目前还支持关键词提取、词性标注、词位置查询等。更让人愉悦的是jieba虽然立足于python,但同样支持其他语言和平台,诸如:C++、Go、R、Rust、Node.js、PHP、 iOS、Android等。所以jieba能满足各类开发者的需求'
  3. # 句子以句号分割
  4. sentence = text.split('。')
  5. smoothnlp_list = []
  6. for i in range(len(sentence)):
  7. smoothnlp_list.append(extract_phrase(sentence[i]))
  8. # 输出smoothnlp分词结果
  9. print("smoothnlp:",a)

五、词性表

        点击进入 常用词词性表 查看即可

六、总结

        今天主要记录下分词工具的使用,顺便介绍了下自己理解的知识图谱。下篇文章会记录下关于命名体识别的相关技术与思想。点击进入:命名体识别文章

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/835653
推荐阅读
相关标签
  

闽ICP备14008679号