英语词汇由两部分构成,词干和词缀,词缀又分前缀和后缀,这里的词干提取仅只去除后缀的操作。

波特词干提取算法的原文在这里

http://tartarus.org/~martin/PorterStemmer/def.txt

先说一些基本定义

小写c代表辅音字母,小写字母v代表元音字母。大写字母C代表一串辅音字母,长度大于0。大写字母V代表一串连续的元音字母,长度大于0.因此,一个单词或者一个单词的一部分,可以表示为如下的四种形式之一。

CVCV ... C

CVCV ... V

VCVC ... C

VCVC ... V

这四种形式可以归纳为一种形式:

[C]VCVC ... [V]

可以进一步表示为如下形式:

[C](VC){m}[V].
其中方括号表示是可选的,{m}表示前面单词的一部分的重复次数。如下面的一些例子。

m=0    TR,  EE,  TREE,  Y,  BY.(没有出现)
 m=1    TROUBLE,  OATS,  TREES,  IVY.(出现一次,见黑体部分)
 m=2    TROUBLES,  PRIVATE,  OATENORRERY.(出现两次,见黑体部分)

去除后缀的规则如下形式:

(condition) S1 -> S2
也就是说,如果这个单词的后缀是S1,如果词干满足条件(condition),那么就用S2替换S1,这种形式的描述和CFG的描述一致。这个条件通常是由m决定的,上面已经示例来m。例如:

(m > 1) EMENT ->

条件就是m>1,S1就是ELMENT,S2是空。

如果按照上面的这个规则,那么就可以把单词replacement替换成replace。因为m=2,可以参见黑体部分。

(待续)



[搜索]波特词干(Porter Streamming)提取算法详解(1)相关推荐

  1. [搜索]波特词干(Porter Streamming)提取算法详解(2)

     接[搜索]波特词干(Porter Streamming)提取算法详解(1), http://blog.csdn.net/zhanghaiyang9999/article/details/4162 ...

  2. [搜索]波特词干(Porter Streamming)提取算法详解(3)

     接上 [搜索]波特词干(Porter Streamming)提取算法详解(2) 下面分为5大步骤来使用前面提到的替换条件来进行词干提取. 左边是规则,右边是提取成功或者失败的例子(用小写字母表示 ...

  3. SIFT特征点提取及描述论文算法详解

    SIFT特征点提取及描述论文算法详解 1. 尺度空间极值检测(Scale-space extrema detection) 1.1 尺度空间和极值 1.2 DoG和LoG的关系 1.3 构建高斯尺度差 ...

  4. 新颖性搜索(Novelty Search,NS)算法详解与实现

    新颖性搜索(Novelty Search,NS)算法详解与实现 基于目标的进化算法的缺点 新颖性搜索与自然进化 新颖性指标 算法描述 新颖性搜索算法实践 基于目标的进化算法的缺点 大多数机器学习方法( ...

  5. 推荐系统简介+算法详解+项目介绍

    目录标题 推荐系统简介 1.推荐系统目的 2.推荐系统的应用 3.推荐系统的基本思想 4.推荐系统的数据分析 5.推荐系统的分类 6.推荐算法简介 6.1 基于人口统计学的推荐算法(基于用户数据) 6 ...

  6. JVM底层原理+四大垃圾回收算法详解-周阳老师

    转载自,感谢原作者:https://www.jianshu.com/p/9e6841a895b4 注意:垃圾回收算法周阳老师讲的有错误,具体在p19,四大垃圾回收算法为复制算法.标记-整理算法.标记- ...

  7. 基于内容的推荐算法详解+问题思考

    前言 最近参加了一个推荐的比赛,就像了解一些推荐相关的技术,也跟着学习总结一下,相同的内容不同的理解,我也要记录下我的思考. 场景 我们假设一个电商的场景,电商有很多商品,怎么把商品推荐给用户 就是我 ...

  8. matlab的NLP功能,pyhanlp 共性分析与短语提取内容详解

    pyhanlp 共性分析与短语提取内容详解 简介 HanLP中的词语提取是基于互信息与信息熵.想要计算互信息与信息熵有限要做的是 文本分词进行共性分析.在作者的原文中,有几个问题,为了便于说明,这里首 ...

  9. 目标检测 RCNN算法详解

    原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...

最新文章

  1. Android库so文件及skia函数的调用
  2. MariaDB Galera Cluster环境搭建及高可用测试
  3. 代码管理 防止员工_低代码开发现形记
  4. 科学家用大脑控制平板电脑操作 真的可以!
  5. 4-2-在Servlet中解决中文输出乱码问题
  6. sql语句之查询操作
  7. 传智播客java学习之面向对象(抽象类) , 接口
  8. 个税服务器系统繁忙,2021个人所得税系统异常进不去怎么办?系统繁忙请稍后再试怎么回事...
  9. C++案例——联系人管理系统
  10. CADD之分子对接二:简单autodockvina对接流程——redocking
  11. Stata绘图:多维柱状图绘制
  12. backtracking及其应用
  13. 分块专题整理(分块+莫队)
  14. 【SCI征稿】Elsevier旗下中科院2区TOP, 仅1周见刊, 6月11日截稿 (文末有好)~
  15. php --with-readline,php基于命令行的扩展Readline
  16. 浅析无人值守+智慧巡检变电站安全管控系统设计方案
  17. (STM32)从零开始的RT-Thread之旅--SPI驱动ST7735(3)使用DMA
  18. java接口中只能定义常量和抽象方法_java基础19. 下列有关接口的叙述错误的是哪项?() A.接口中只能包含抽象方法和常量 B.一个类可以实现多个接口...
  19. Pytorch激活函数之Relu家族:ReLU、LeakyReLU等
  20. dlink 交换机的配置

热门文章

  1. android 之ExpandableListView详解
  2. opencv 显示图片
  3. lwip协议栈优化_干货分享 | KNI性能优化实践
  4. c++局域网主动ftp_【Jmeter】使用Jmeter对FTP协议的测试
  5. python库整理:collections.defaultdict
  6. 文巾解题 26. 删除有序数组中的重复项
  7. python中的缩进问题_Python中的缩进问题
  8. 2个字节能存多少个16进制_LabVIEW高级编程技巧:如何从内存字节流中恢复原始数据...
  9. 新手入门深度学习 | 卷积神经网络是什么?
  10. Python入门100题 | 第035题