自然语言处理之_SentencePiece分词

自然语言处理之_SentencePiece分词,第1张

 SentencePiece是一个google开源的自然语言处理工具包。网上是这么描述它的:数据驱动、跨语言、高性能、轻量级——面向神经网络文本生成系统的无监督文本词条化工具。

 那么它究竟是干什么的呢?先举个例子:假设在数据挖掘时,有一列特征T是文本描述,我们需要将其转成枚举型,或者多个布尔型代入模型,即:需要从文本中提供信息构造新特征。

 首先,我们可以用标点将长句长分成短句,以短句作为关键词,看每个实例的特征T中是否包含该关键词,从而构造新的布尔型特征。但有时候表达同一个意思所使用的文本并不完全一致,比如“买三送一”和“买三送一啦!”是一个意思。

 此时,我们可以用SnowNLP或者jieba分词把描述拆成单个词,看T是否包括该关键词。但这样用也有一个问题:可能把一个意思拆成了多个特征,比如“袖子较短,领子较大”被拆成了四个独立的特征“袖子”“较短”“领子”“较大”,组合效果没有了。

 我们想要的效果是:如果“袖子较短”这个组合经常出现,就把它当成一个词处理。jieba中可以用自定义词典的方式加入已知的词。

 还有一些组合常常出现,但事先并不知道,于是我们想让机器自动学习经常组合出现的短语和词。SentencePiece就是来解决这个问题的。它需要大量文本来训练。

 SentencePiece的用途不限于自然语言处理,记得DC之前有一个药物分子筛选的比赛,蛋白质的一级结构是氨基酸序列,需要研究氨基酸序列片断,片断的长度又是不固定的,此处就可以用SentencePiece进行切分。原理是重复出现次数多的片断,就认为是一个意群(词)。

 SentencePiece分为两部分:训练模型和使用模型,训练模型部分是用C语言实现的,可编成二进程程序执行,训练结果是生成一个model和一个词典文件。

 模型使用部分同时支持二进制程序和Python调用两种方式,训练完生成的词典数据是明文,可编辑,因此也可以用任何语言读取和使用。

 如果我们分析某个领域相关问题,可以用该领域的书籍和文档去训练模型。并不限于被分析的内容本身。训练数据越多,模型效果越好。更多参数及用法,请见git上的说明文件。

>

jieba分词得出的结果既不是string,也不是list具体是什么类型的我也不记得了。如果把得出的结果转换成list就好办了。列如:import jiebas = '一些乱七八糟的字符串‘s= list(jiebacut(s,cut_all=false))for i in s:#就能写入文本了。

# -- coding: utf-8 --

import jieba

import jiebaposseg as pseg

import jiebaanalyse

#jiebaload_userdict('userdicttxt')#jieba默认有一个dicttxt词库,但可以根据自己需要加入自己的词条

str1 = "训练一个可进行N维分类的网络的常用方法是使用多项式逻辑回归"

str2 = "可以尝试修改网络架构来准确的复制全连接模型"

str3 = "模型的目标函数是求交叉熵损失和所有权重衰减项的和,loss()函数的返回值就是这个值"

seg_list = jiebacut(str1,cut_all =True) #全模式

print("/"join(seg_list))

result = psegcut(str1)

result2 = jiebacut(str2) #精准模式

result3 = jiebaanalyseextract_tags(str3,4) #关键词提取

result4 = jiebacut_for_search(str3) #搜索引擎模式

for w in result:

print(wword,wflag)

print(" "join(result2))

print(" "join(result3))

print(" "join(result4))

猜测你使用的 Python 版本为 Python2  但是使用 coding: utf-8 设置中文编码只在 Python 3 有效

所以 设置默认编码 应在代码开始部分应该加上

import sys

reload(sys)

syssetdefaultencoding('UTF-8')

以上就是关于自然语言处理之_SentencePiece分词全部的内容,包括:自然语言处理之_SentencePiece分词、版本23.0下载jieba是什么命令、一个txt文档怎么用结巴分词进行中文分词等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9851941.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存