最近正在着手研究知识图谱建设及应用方面工作,我们知道,做知识图谱首先涉及到的问题就是自然语言处理,简称NLP。一般用于构建知识图谱的数据源大概有两类:结构化数据和非结构化数据,这两类数据都需要做以下的自然语言处理工作,本文重点阐述自然语言处理的相关技术,以及与处理有关的开源框架学习。

一、常见的自然语言处理流程:

文本抽取--》数据加载--》数据清洗--》构建用户自定义分词--》构建同义词列表--》去除停用词--》文档分词--》获得每条信息或每篇文档的分词列表--》形成图谱--》分词列表转化为向量

1.文本抽取:一般采取OCR,office或pdf转txt或csv格式。

2.数据加载:单个txt或csv文件的加载,批量文件夹的文件递归加载。

3.数据清洗:一般采用正则表达式或字符串替换,简体繁体转换,缺失值处理等等。

4.构建自定义分词列表和同义词列表:形成行业或专业分词库,主要是一些内部的公共关联名词、专业名词或动词。

5.去除停用词:去掉常见的停用词,比如的,地,得,代词,形容词,程度词等。

6.文档分词:结合专业的分词处理框架,实现信息的分词,并且获的词性数据,有些还能获的关系数据。

7.形成图谱:结合开源的行业知识词库(如有),再结合上下文的分级分类关系,得到每条信息或每篇文档的图谱,并在总体图谱中关联,未来融入的总体图谱中。

8.分词列表转化为向量:结合开源的词向量模型,实现分词列表转化为词向量矩阵,如tfidf、word2vec,bow/cbow,bert2vec等)。

一般上述前6步骤会反复循环开展。

二、常见的自然语言处理框架推荐

1.jieba分词:支持三种分词模式(精确,全模式和搜索引擎),自定义分词,词典调整,关键词提取,词性标注等。

2.HanLP分词:相当于利用python调用jvm程序(jar),支持四种分词模式(标准、NLP、索引和极速),自定义分词,实体识别和词性标注等。

3.spacy框架:支持句子分割,实体识别,依赖关系识别,词性识别与还原等。

4.NLTK词频特征统计:实现特征词的频率分布图。

5.tfidf值特征统计:实现不同分类下的词频矩阵,引入sklearn实现多分类情况下的TF/IDF特征值计算。

6.Gensim库:实现自然语言处理(支持前6步工作),支持不同的文本矢量化模型,包括TF/IDF,LSA,LDA,RP,word2vec等。

7.Tensorflow:机器学习框架,支持各种自然语言处理的开源的词向量模型,灵活搭建各种AI模型。

8.SKlearn:机器学习类库,支持多种自然语言处理的开源的词向量模型,机器学习模型。

三、自然语言处理技术体系:

四、第二部分处理框架内容的代码汇总

import jieba,os
import jieba.posseg
import jieba.analyse
# 1 全模式,扫描所有可以成词的词语, 速度非常快,不能解决歧义.
seg_list = jieba.cut("我来到北京的清华大学", cut_all=True)
print("\nFull Mode: " + "/ ".join(seg_list))
# 2 加载自定义分词词典
jieba.load_userdict("../dataSet/StopWord/user_dict.txt")
seg_list1 = jieba.cut("今天很高兴在csdn和大家交流学习自然语言处理及知识图谱相关知识")
print('\n\n加载自定义分词词典:\n'+"/ ".join(seg_list1))
# 3 关键词提取
s ='今天很高兴在csdn和大家交流学习自然语言处理及知识图谱相关知识'
for x, w in jieba.analyse.extract_tags(s,10, withWeight=True):print('%s %s' % (x, w))
# 4 词性标注
words = jieba.posseg.cut("我爱北京的历史文化")
for word, flag in words:print('%s %s' % (word, flag))
from jpype import *
# 启动JVM,Linux需替换分号;为冒号:
startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\dev\hanlp\hanlp\hanlp-1.8.3.jar;D:\dev\hanlp\hanlp", "-Xms1g", "-Xmx1g")
# 1 NLP分词NLPTokenizer会执行全部命名实体识别和词性标注
print("="*30+"NLP分词"+"="*30)
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment(paraStr1))
#2 自定义分词
paraStr2 = '攻城狮逆袭单身狗,迎娶白富美,走上人生巅峰'
CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
CustomDictionary.add('攻城狮')
CustomDictionary.add('单身狗')
HanLP = JClass('com.hankcs.hanlp.HanLP')
print(HanLP.segment(paraStr2))
#3 命名实体识别与词性标注
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment(paraStr2))
shutdownJVM()
import spacy
nlp = spacy.load('en_core_web_sm')
with open("./data/FINAL_WELL_REPORT.txt",encoding='utf-8') as f:text1 = f.read()# 创建nlp对象
doc = nlp(text1)
#1 词性标注
print([(w.text, w.pos_) for w in doc])
print(spacy.explain("VERB"))
#nlp.tokenizer(doc)
# 2 依赖关系分析
for token in doc:print(token.text, "-->", token.dep_)

自然语言处理技术及处理框架学习相关推荐

  1. 自然语言处理技术(NLP)在推荐系统中的应用 原2017.06.29人工智能头条 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索、推荐以及算法相关工作。多年来主要从事推荐系统以及机

    自然语言处理技术(NLP)在推荐系统中的应用 原2017.06.29人工智能头条 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索.推荐以及算法相关工作.多年来主要从事推荐系统以及机 ...

  2. 自然语言处理技术(NLP)在推荐系统中的应用

    作者:CSDN云计算 来源:CSDN云计算 2017-07-03 16:19:00 个性化推荐是大数据时代不可或缺的技术,在电商.信息分发.计算广告.互联网金融等领域都起着重要的作用.具体来讲,个性化 ...

  3. java框架学习顺序

    学习java的顺序修软件工程,那学习java系列的顺序是什么? 看下疯狂系列图书的前面,都附带java的学习步骤.看你的基础来决定.一般都是Java SE ---Severlet----JSP---s ...

  4. 一张图看懂自然语言处理技术框架

    一张图看懂自然语言处理技术框架 一.前言 正在针对<人工智能产品经理最佳实践>视频课程第三部分,关键技术篇,进行相关的内容重构,今天整理的部分是自然语言处理技术框架,特地绘制了一张自然语言 ...

  5. 自然语言处理与机器学习技术博客、学习资料精选[附网盘地址]

    自然语言处理与机器学习技术博客.学习资料精选! 首先,恭喜点开了这篇文章的读者,本文所提供的资料是免费的,小编不卖资料,是赠送资料! 今天咱们的学习社区里有学员提出要推荐一些NLP方面的博客.站点,因 ...

  6. Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人

    Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting.Self-Consistency等:项目实战搭建知识库内容机器人 1. ...

  7. 送书福利 | 大数据智能:数据驱动的自然语言处理技术

    刘知远 崔安颀 等编著 电子工业出版社-博文视点 2020-01 ISBN: 9787121375385 定价: 89.00 元 新书推荐 ????今日福利 |关于本书| 本书前身<大数据智能- ...

  8. 「技术选型」深度学习软件如何选择?

    深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标--人工智能(AI, Artifici ...

  9. 人工智能自然语言处理技术在财务管理专业的应用

    人工智能自然语言处理技术在财务管理专业的应用 人工智能(Artificial Intelligence) ,英文缩写为AI.它是研究.开发用于模拟.延伸 和扩展人的智能的理论.方法.技术及应用系统的一 ...

最新文章

  1. 超级计算机算200p什么意思,超级计算机一万年的运算仅需200秒,量子霸权的神话真的能实现吗?...
  2. ajax与HTML5 history pushState/replaceState实例
  3. 进入编辑模式、vim命令模式、vim实践
  4. Java黑皮书课后题第7章:7.4(分析成绩)编写一个程序,读入个数不确定的考试分数,并且判断有多少个分数是大于或等于平均分,多少个分数是低于平均分的。输入一个负数表示输入结束。假设最高分是100
  5. hdu 1058 Humble Numbers
  6. LeetCode-240 Search a 2D Matrix II
  7. Hyper-V损坏数据恢复报告
  8. const变量生存周期_CTM期刊 |神经胶质瘤中HOTAIREZH2抑制剂AQB能上调CWF19L1并促进CDK4/6抑制剂帕博西尼对细胞周期的抑制...
  9. 30秒的PHP代码片段(1)数组 - Array
  10. 使用SQL Server ROWCOUNT
  11. microsoft mysql下载_MySQL下载与安装+Jmeter
  12. XCode之第一次亲密接触
  13. servlet+jsp面试题
  14. 仿铁路订票系统Gridview
  15. SRE(站点可靠性工程)介绍
  16. POJ 3295 Tautology (模拟法,栈的使用)
  17. 解密:LL与LR解析 1(译)
  18. Ubuntu18.04/20.04 上微信中文显示为方块状乱码的解决方案( Deepin-Wechat )
  19. 安装NTFS For Mac时显示文件已损坏怎么办
  20. 腾讯云服务器从购买到搭建tomcat

热门文章

  1. 戴尔游匣5577黑苹果EFI文件
  2. 柱状图怎么设置xy轴_excel表格xy轴数据-怎么做用excel设置xy轴
  3. 1017:浮点型数据类型存储空间大小
  4. 修改Mac 共享Wifi默认的桥接IP
  5. 测试职业规划之知识点总结
  6. github新手入门
  7. 关于下载淘宝教育的课程
  8. 科幻计算机类小说,感觉是在读科幻小说?计算机推演宇宙,结果会如何?
  9. WIN10 +pytorch版yolov3训练自己数据集
  10. Win7下安装Mysql5.7.26