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对于中文的分词并不是很好(其实也没有怎么 ...
随机推荐
- 理解 Linux 中 `ls` 的输出
ls 的输出会因各 Linux 版本变种而略有差异,这里只讨论一般情况下的输出. 下面是来自 man page 关于 ls 的描述: $ man ls ls - list directory cont ...
- 总结http get和post的区别
这个问题几乎面试的时候都会问到,是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎. 什么是http? get.post常见的区别 ge ...
- Java集合详解2:LinkedList和Queue
今天我们来探索一下HashMap和HashTable机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 ...
- nmon - 性能监控利器介绍
关于nmon nmon 是一款小巧的系统监控程序(只有5000行代码),可以用来对CPU.磁盘.内存等资源指标来做实时监控. 之前在做系统性能优化工作时用得较多,觉得非常不错,于是在这里给大家介绍下用 ...
- kubectl自动补全
source <(kubectl completion bash) echo "source <(kubectl completion bash)" >> ...
- Django-restframework 之频率源码分析
Django-restframework 之频率源码分析 一 前言 经过权限判断之后就是进行频率的判断了,而频率的判断和权限又不一样,认证.权限和频率的执行流程都差不多,使用配置里面的相关类来进行判断 ...
- GOF23种设计模式概括
GOF23种设计模式分为三种: 创建型模式[工厂方法模式]结构型模式[(类)适配器模式]行为型模式[ 解释器模式,模板方法模式] 创建型模式Creational Patterns抽象工厂模式abs ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- Vue开发插件
(一)Vue.js的插件应该有一个公开方法:install. 这个方法的第一个参数是Vue构造器,第二个参数是一个可选的选项对象,一般是如下操作: MyPlugin.install = functio ...
- 实现DataTables搜索框查询结果高亮显示
DataTables是封装好的HTML表格插件,丰富了HTML表格的样式,提供了即时搜索.分页等多种表格高级功能.用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据.关 ...