一 . 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的更多相关文章

  1. widows下jieba分词的安装

    在切词的时候使用到jieba分词器,安装如下: 切入到结巴包,执行 python setup.py install 安装后,可以直接在代码中引用: import jieba

  2. 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法

    错误现象: 最近在做一个小项目,在Python中使用了jieba分词,感觉非常简洁方便.在Python端进行调试的时候没有任何问题,使用PyInstaller打包成exe文件后,就会报错: 错误原因分 ...

  3. Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  4. python结巴(jieba)分词

    python结巴(jieba)分词 一.特点 1.支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析. (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解 ...

  5. 使用pynlpir增强jieba分词的准确度

    在使用jieba分词时,发现分词准确度不高.特别是一些专业词汇,比如堡垒机,只能分出堡垒,并不能分出堡垒机.这样导致的问题是很多时候检索并不准确. 经过对比测试,发现nlpir进行分词效果更好.但是n ...

  6. 自然语言处理之jieba分词

    在处理英文文本时,由于英文文本天生自带分词效果,可以直接通过词之间的空格来分词(但是有些人名.地名等需要考虑作为一个整体,比如New York).而对于中文还有其他类似形式的语言,我们需要根据来特殊处 ...

  7. jieba分词(3)

    jieba分词中Tokenize的使用,Tokenize主要是用来返回词语在原文的弃之位置,下面贴上代码: #-*- coding:utf-8 -*- from __future__ import u ...

  8. jieba分词(2)

    结巴分词系统中实现了两种关键词抽取法,一种是TF-IDF关键词抽取算法另一种是TextRank关键词抽取算法,它们都是无监督的算法. 以下是两种算法的使用: #-*- coding:utf-8 -*- ...

  9. jieba分词(1)

    近几天在做自然语言处理,看了一篇论文:面向知识库的中文自然语言问句的语义理解,里面提到了中文的分词,大家都知道对于英文的分词,NLTK有很好的支持,但是NLTK对于中文的分词并不是很好(其实也没有怎么 ...

随机推荐

  1. java~IDEA引用包时分组所有java包

    对于java系统包,我们的IDEA里开发项目时,如果你使用了java系统包,如import java.util,那么,你可以把它和其它第三方的包分开,这样更清晰,我们可以在设置里,代码风格,java ...

  2. 分析 js构造函数:对象方法 、类方法 、原型方法

    构造函数方法有对象方法.类方法.原型方法,这些方法在什么时候可以调用,什么时候不能调用,为什么? function Func(name){ this.name=name; this.ff=functi ...

  3. Docker进阶之五:容器管理

    容器管理 一.创建容器常用选项 docker container --help 指令 描述 资源限制指令 -i, --interactive 交互式 -m,--memory 容器可以使用的最大内存量 ...

  4. SLAM+语音机器人DIY系列:(二)ROS入门——3.在ubuntu16.04中安装ROS kinetic

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  5. 玩转Spring Cloud之配置中心(config server &config client)

     本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1.2.svn方式 1.3.本地文件方式 1.4.解决配置中包含中文内容返回乱码问题 二.搭建配置消费客户端( ...

  6. webpack-插件机制杂记

    系列文章 Webpack系列-第一篇基础杂记 webpack系列-插件机制杂记 前言 webpack本身并不难,他所完成的各种复杂炫酷的功能都依赖于他的插件机制.或许我们在日常的开发需求中并不需要自己 ...

  7. Flask的session使用

    由于http是无状态保存的协议,session可以看作不同请求之间保存数据的一种机制.flask的session是基于cookie的会话保持. 流程 当客户端进行第一次请求的时候,客户端的HTTP r ...

  8. Centos7 Jenkins日志过大

    df 查看 占用 [root@instance-ncwnnt0e /]# df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs ...

  9. Ajax全局处理错误

    背景:项目前端ajax请求很多都没有写error方法,所以用户体验很不好 新来的前端负责人发现这个问题,写了一个错误处理方法,如下 //统一处理Ajax错误方法 function onAjaxErro ...

  10. 我爱Java系列之《JavaEE面试宝典》---【IO流面试总结】

    1.什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别 答案 Bit最小的二进制单位 ,是计算机的操作部分 取值0或者1 Byte是计算机操作数据的最小 ...