pypinyin, jieba分词与Gensim
一 . pypinyin
from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(word, style=TONE)) # ['sūn', 'wù', 'kōng']
print(lazy_pinyin(word, style=TONE2)) # ['su1n', 'wu4', 'ko1ng']
print(''.join(lazy_pinyin(word, style=TONE2))) # su1nwu4ko1ng
print(lazy_pinyin(word, style=TONE3)) # ['sun1', 'wu4', 'kong1'] # 应用场景(自然语言处理NLP)
比如通讯录里面有叫'凰尚'的人,这个词不常见,你如果让语音助手给'凰尚'发消息,语音助手肯定识别不了,
它可能给'皇上'或者'黄尚'发,因为常见,但是把文字转成拼音就可以发了,它可以找到hua2ngsha4ng(习惯用TONE2),然后发出去.
二 . jieba分词
import jieba word = '今天天气怎么样' print(list(jieba.cut(word)))
# ['今天天气', '怎么样'] print(list(jieba.cut_for_search(word)))
# ['今天', '天天', '天气', '今天天气', '怎么', '怎么样'] # 应用场景,和gensim一起用,用于自然语言处理与机器学习
三 . gensim
import jieba
from gensim import corpora
from gensim import models
from gensim import similarities lst = ['你今年几岁了', '你今年多大了', '祖国祖国我们爱你'] # 语料库,我们说的话要到这里面匹配 all_doc_list = []
for doc in lst:
doc_list = list(jieba.cut_for_search(doc))
all_doc_list.append(doc_list) dictionary = corpora.Dictionary(all_doc_list) # 制作词袋
# print('词袋有什么==>', dictionary)
corpus = [dictionary.doc2bow(doc) for doc in all_doc_list] # doc2bow词袋里的词组成[(0,1),(2,6)]形式的
# print(corpus) # 将你说的话先做成分词列表,然后做成语料库
word = '祖国我爱你'
doc_test_list = (list(jieba.cut_for_search(word)))
doc_test_vec = dictionary.doc2bow(doc_test_list)
# print(doc_test_vec) # 将语料库使用lsi模型训练
lsi = models.LsiModel(corpus)
# print('corpus的训练结果>>>', lsi[corpus]) index = similarities.SparseMatrixSimilarity(lsi[corpus], num_features=len(dictionary.keys()))
# print(index, type(index))
# 将 语料库doc_test_vec 在 语料库corpus的训练结果 中的 向量表示 与 语料库corpus的 向量表示 做矩阵相似度计算
sim = index[lsi[doc_test_vec]]
# print("sim", sim, type(sim)) # 对下标和相似度结果进行一个排序,拿出相似度最高的结果
res = sorted(enumerate(sim), key=lambda item: -item[1])
print(res)
text = lst[res[0][0]] # 找到lst中与数据最匹配的索引位置 print(word, text)
pypinyin, jieba分词与Gensim的更多相关文章
- widows下jieba分词的安装
在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba
- 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法
错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...
- Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考
前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...
- python结巴(jieba)分词
python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...
- 使用pynlpir增强jieba分词的准确度
在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...
- 自然语言处理之jieba分词
在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...
- jieba分词(3)
jieba分词中Tokenize的使用,Tokenize主要是用来返回词语在原文的弃之位置,下面贴上代码: #-*- coding:utf-8 -*- from __future__ import u ...
- jieba分词(2)
结巴分词系统中实现了两种关键词抽取法,一种是TF-IDF关键词抽取算法另一种是TextRank关键词抽取算法,它们都是无监督的算法. 以下是两种算法的使用: #-*- coding:utf-8 -*- ...
- jieba分词(1)
近几天在做自然语言处理,看了一篇论文:面向知识库的中文自然语言问句的语义理解,里面提到了中文的分词,大家都知道对于英文的分词,NLTK有很好的支持,但是NLTK对于中文的分词并不是很好(其实也没有怎么 ...
随机推荐
- ES 06 - 通过Kibana插件增删改查ES中的索引文档
目录 1 document的结构 2 document的常见CRUD操作 2.1 添加商品: 添加文档并建立索引 2.2 查询商品: 检索文档 2.3 修改商品: 替换文档 2.4 修改商品: 更新文 ...
- 【我们一起写框架】MVVM的WPF框架(三)—数据控件
这世上,没人能一次性写出完美无缺的框架:因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美. 所以,框架是个反复修改的东西,最终形成的东西. 如果你学了一点技术,觉得自己可以写出框架了,觉得自 ...
- 《C#并发编程经典实例》学习笔记—2.2 返回完成的任务
问题: 如何实现一个具有异步签名的同步方法. 从异步接口或基类继承代码,但希望用同步方式实现方法. 解释一下所谓的异步接口和异步基类.例如如下代码 interface IMyAsyncInterfac ...
- 小游戏大智慧,10 个让人眼前一亮的 JavaScript 游戏
摘要: JS还可以这么玩~ Fundebug经授权转载,版权归原作者所有. 这是一篇有趣的文章,我们精选了 JS13K 游戏编程挑战的优秀作品,与大家分享.JS13K 是专为 JavaScript 开 ...
- 头部banner根据网址高亮
$(function(){ var urlstr = location.href; $(".nav li a").each(function () { if ((urlstr + ...
- C#中try catch finally 用法
1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行. catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) ...
- 服务器三:多线程epoll
#include <fcntl.h> #include <sys/socket.h> #include <netinet/in.h> #include <ar ...
- DevExpress TreeList 禁止节点拖动到其他节点上
背景 在做一个类似文件树的控件,支持节点从树上向其它的控件拖动程序,但是要保证树上的节点不能拖动上其他的节点上. 代码 /// <summary> /// 拖动节点完成 /// </ ...
- Simulink 产品说明
Simulink 产品说明 仿真和基于模型的设计 Simulink® 是一个模块图环境,用于多域仿真以及基于模型的设计.它支持系统级设计.仿真.自动代码生成以及嵌入式系统的连续测试和验证.Simuli ...
- Python编写的Linux邮件发送工具
之前有用过Linux自带的mail工具来定时发送邮件,但是要装mailx还有配mail.rc,这还比较正常,关键是到了ubantu下这工具用起来真是操蛋,如果哪天其他的unix like操作系统也有需 ...