zoukankan      html  css  js  c++  java
  • 无词典分词

    看了互联网时代的社会语言学:基于SNS的文本数据挖掘

    blog地址:http://www.matrix67.com/blog/archives/5044

    全文思路

    1、介绍了无词典分词,且要考虑两个因素,一是内部凝固程度,二是外部自由程度

    2、举例说明,使用后缀数组,以O(nlogn)的时间复杂度来实现该算法

    3、介绍应用场景

    白话文

    1、不需要词典就把这句话给分了,有两个重点考核,一是排除那些是因为字偶然碰在一起形成的“词”,比如“的电影”;二是排除那些扩展性差的“词”,比如“辈子”

    2、暂时不涉及

    3、暂时不涉及

    我的体会

    抛开应用背景不讲,我关心的还是无词典分词,以下讲讲我的理解

    细节上讲,如何算该词的概率,或者说如何算该字的概率,是我的第一个问题,这个概率的分母是什么,比如,P(“电影”) = count(“电影”)/所有的词的个数?那P(“的”)又是什么呢?是等于count(“的”)/所有单个字的个数么?

    理解凝固程度和自由程度之后,若不接下来看的,我设计的算法会是这样子的,我会先得到每个可能的组合,比如对一个句读来说“我去电影院”:

    1、得到每一种可能组合,我就得到了“我去”、“去电”、“电影”、“影院”,“我去电”,“去电影”、“电影院”、“我去电影”、“去电影院”、“我去电影院”,之后首先判断这些组合出现的频率是不是大于我设的阈值,比如说“电影”、“电影院”、“去电影院”都大于我设的阈值,

    2、就下来就要判断内部凝固程度,以“电影院”为例,取P(“电影院”)/ (P(“电影”) * P(“院”))和P(“电影院”)/ (P(“电”) * P(“影院”))的较小值,我解释下为什么去较小值,首先,分子肯定是比分母大的,如果,分母和分子是在同一数量级的,甚至相等的话,那意味着这是这词凝固力不高,是可以拆分的,只要有一种拆分的可能,那就说凝固力不高。因此取较小值。这样就成功地剔除了一部分不符合要求的组合

    3、再来判断自由程度,这个在我算法就显得格外麻烦,因为这个要看这个词前面和后面的字的信息,才能算出信息熵,所以我得对我每个组合,去全文检索一篇,在算信息熵,看是不是大于我的阈值。

    文中举了一个例子,是采用后缀数组实现,效率比我想到的不知道高了多少。

    博文100篇,纪念一下,再接再厉。

  • 相关阅读:
    为什么软件开发的速率比不上硬件的发展
    快速通读教材《现代软件工程——构建之法》
    个人学期总结
    201571030123/201571030126《小学四则运算练习软件软件需求说明》结对项目报告
    《小学四则运算练习软件》GUI
    java编写四则运算
    201571030126 初读《构建之法》
    201571030121《小学四则运算练习软件软件需求说明》结对项目报告
    201571030121 《小学生四则运算练习软件》结对项目
    201571030121 《四则运算》
  • 原文地址:https://www.cnblogs.com/chuanlong/p/3087565.html
Copyright © 2011-2022 走看看