分词

 

今天发现一个不用npl实现分词的方法

jieba分词

全自动安装:

pip install jieba (window环境)
pip3 install jieba (Linux环境)

  1. 首先进行将语句转换为UTF-8或者GBK。

  2. 然后根据用户指定的模式,是否全模式,是否采用HMM隐马尔科夫,来设置cut方式。

  3. 然后根据正则,将输入文本分为一个个语句。

  4. 最后遍历语句,对每个语句单独进行分词。

复制代码
def calc(self, sentence, DAG, route):
    N = len(sentence)
    route[N] = (0, 0)
    logtotal = log(self.total)
    for idx in xrange(N - 1, -1, -1):
# route[idx] = (该汉字到最后一个汉字的最大路径概率, 
  # 最大路径概率时该汉字对应的词语结束位置).
# 遍历DAG中该汉字节点的结束位置,也就是DAG[idx],
  # 计算idx到x之间构成的词语的概率,然后乘以x到语句结束位置的最大概率,
  # 即可得到idx到语句结束的路径最大概率.
        route[idx] = max(
                       (log(self.FREQ.get(sentence[idx:x + 1]) or 1) 
                        - log(total) 
                       + route[x + 1][0]
                     , x) for x in DAG[idx])
# 每个词的概率 = 字典中该词的词数 / 字典总词数。
复制代码

 

posted @   小张睡醒了  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示