为C# 设计的Snowball Stemmer---词干提取但不包含中文

关于文本挖掘系统snowball 1.  综述 1.1 文本挖掘简介 文本挖掘已经成为数据挖掘中一个日益流行而重要的研究领域。与一般数据挖掘以关系、事务和数据仓库中的结构数据为研究目标所不同的是,文本挖掘所研究的文本数据库, 由来自各种数据源的大量文档组成。这些文档可能包含标题、作者、出版日期、长度等结构化数据, 也可能包含摘要和内容等非结构化的文本成分,而且这些文档的内容是人类所使用的自然语言,计算机很难处理其语义。因此传统 阅读详情

来自:http://hi.baidu.com/liuqiyuan/item/9926018e6e4561d55e0ec1df

更多/More: http://www.liuqiyuan.com/blog/?p=110

在信息检索领域,Stemming是指将英文单词转换为词干的处理过程。Stemming与Lemmatization的不同是,前者只是词干的简单提取,后者则利用上下文语义环境(context)进行词元(lemma)转换。贴出WIKIPedia对两者的定义:

Stemming is the process for reducing inflected (or sometimes derived) words to their stem, base or root form—generally a written word form.
Lemmatization in linguistics, is the process of grouping together the different inflected forms of a word so they can be analysed as a single item. In computational linguistics,is the algorithmic process of determining the lemma for a given word. Since the process may involve complex tasks such as understanding context and determining the part of speech of a word in a sentence (requiring, for example, knowledge of the grammar of a language) it can be a hard task to implement a lemmatiser for a new language.

Lemmatization的处理难度较大,并且因为词典的使用成本会比较高,在做“词变”的技术处理中,stemmer自然成为研究的首选。就.NET平台C#语言来讲,比较出名的stemmer——snowball已经放出。
源作者博文:http://www.iveonik.com/blog/2011/08/snowball-stemmers-on-csharp-free-download/
Stemmer for C#下载地址:http://www.iveonik.com/src/StemmersNet.rar

演示如下:
引入库Error:将下载文件打开,试运行其中Demo的Program.cs时会报错(Figure 1),这里只要按照(Figure 2)指示将StemmerDemo设为启动项目即可。





运行代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Iveonik.Stemmers
{
    class Program
    {
        static void Main(string[] args)
        {
            string Liu = "That fishman likes fishing with his cats";
                Console.WriteLine(“OriginalString:”+Liu);
            TestStemmer(new EnglishStemmer(), SplitedStr(Liu));

            Console.ReadKey();
        }

        private static void TestStemmer(IStemmer stemmer, params string[] words)
        {
            Console.WriteLine("Stemmer: " + stemmer);
            foreach (string word in words)
            {
                Console.WriteLine(word + " --> " + stemmer.Stem(word));
            }
        }

        private static string[] SplitedStr(string Liu)
        {
            string[] SplitedStr = Liu.Split(' ');
            return SplitedStr;
        }
    }
}

得结果如下:

 

Python自然语言处理:词干、词形与MaxMatch算法 自然语言处理中一个很重要的操作就是所谓的stemming 和 lemmatization,二者非常类似。它们是词形规范化的两类重要方式,都能够达到有效归并词形的目的,二者既有联系也有区别。基于贪婪策略设计的MaxMatch算法在中文自然语言处理中应用广泛,本文结合NLTK来演示在Python下进行NLP的一些技术。 阅读详情

相关推荐

C#编写的提取英文词干的算法

在词法学和信息检索里,词干提取是去除词缀得到词根的过程─—得到单词最一般的写法。该代码是在其他语言基础上进行简单转换修改后的C#版。

特征工程三:数据特征之词干提取器(stemmer)

SnowballStemmer(雪球词干提取器)是自然语言处理(NLP)中用于词形归并的核心工具

友莘居士的博客 687

85-dify案例分享-无需OpenAI账号,Dify+Sora2工作流实战:一键生成写实动漫视频,插件+教程全解析

本文详细解析了如何利用Dify平台结合Sora2插件,搭建无需OpenAI账号的AI视频生成工作流。通过可视化拖拽配置,用户输入文本描述即可一键生成高质量的写实或动漫风格短片,极大降低了AI视频创作的技术门槛。教程涵盖插件安装、API密钥获取、工作流搭建及优化技巧,助力创作者快速实现创意。

weixin_29053577的博客 554

python语言转换库snowballstemmer

安装 pip install snowballstemmer 这是一款非常瘦小的语言转换库,支持15种语言。 'danish': 丹麦语, 'dutch': 荷兰语, 'english': 英语, 'finnish': 芬兰语, 'french': 法语, 'german': 德语, 'hungarian': 匈牙利语, 'italian': 意大利语, 'norwegian': 挪威语, 'porter': 波特

云中寻雾的博客 3166

保姆级教程:在Ubuntu 20.04上搞定pybind11,解决‘找不到头文件’的坑

本文提供了一份详细的Ubuntu 20.04下pybind11配置指南,重点解决常见的'找不到头文件'问题。从环境准备、安装策略到三种专业解决方案(修改CMakeLists.txt、环境变量方案、绝对路径包含),帮助开发者高效搭建C++与Python的桥梁。

weixin_28829325的博客 284

让 AI 变聪明的 20 条指令:如何让大模型回答得更精准、更专业、更实事求是

让 AI 变聪明,本质上不是写几句神奇咒语,而是把你的任务表达得更清楚,把事实标准设得更严格,把输出格式规定得更明确,把不确定性管理得更认真,把历史对话利用得更充分。大模型的强项是语言生成、信息组织、模式归纳和方案扩展;弱项是事实核验、实时更新、责任判断和对模糊意图的准确猜测。好的指令,就是在用人的判断弥补模型的弱点,让模型把强项发挥在正确的地方。

Sumarua的博客 1489

Python NLP入门教程

什么是NLP? 简单来说,自然语言处理(NLP)就是开发能够理解人类语言的应用程序或服务。 这里讨论一些自然语言处理(NLP)的实际应用例子,如语音识别、语音翻译、理解完整的句子、理解匹配词的同义词,以及生成语法正确完整句子和段落。 这并不是NLP能做的所有事情。 回到顶部 NLP实现 搜索引擎: 比如谷歌,Yahoo等。谷歌搜索引擎知道你是一个技术人员,所以它

词语大杂烩 1万+

【Java】利用反射执行Spring容器Bean指定的方法,支持多种参数自动调用

目录 使用情景 目的 实现方式 前提: 思路 核心类 测试方法 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法; 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的 很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用。 大家也可以...

ITjianshuzhai的博客 2334

NLTK自然语言处理实战:2.3 词干提取与词形还原

摘要 本文介绍了NLTK中的词干提取与词形还原技术,这是自然语言处理中重要的文本归一化方法。词干提取通过去除后缀得到词干(如Porter、Lancaster算法),速度快但不考虑上下文;词形还原则基于WordNet词典还原为完整词元(如WordNetLemmatizer),准确性高但需要词性信息。文章通过代码示例对比了不同方法的效果,并总结了它们的特点:词干提取适合信息检索等对速度要求高的场景,而词形还原更适合文本分类等需要高准确性的任务。

AI 题库 —— 软件编程老兵专属分享阵地,聚焦青少年编程等级考、Python/C++ 信息学奥赛、机器人技术等级考试备考干货,依托智能题库资源,用 5 年一线教学经验助力编程学习高效备考! 1428

【银河麒麟服务器】银河麒麟V10 SP3高级服务器操作系统网卡配置完全指南:图形界面、Network、NetworkManager、IP 地址、路由与端口聚合详解

本文系统介绍了银河麒麟V10SP4服务器操作系统的网络配置方法,涵盖图形界面、NetworkManager、nmcli命令行等多种配置方式。重点讲解了IP地址设置、路由管理以及端口聚合(Bonding)的实现,包括传统配置文件、nmcli和nmtui三种Bonding配置方案。文章对比了NetworkManager与传统network服务的区别,并提供了常见网络问题的排查建议。通过多种配置方法的详细说明,帮助用户掌握银河麒麟服务器系统的网络管理技能,构建稳定可靠的网络环境。

YHLCCY的博客 5377

基于相场法模拟金属铜的晶粒的长大过程附matlab完整代码

晶粒生长是一种重要的材料形态演化过程,对于材料的性能和制备有着非常重要的影响。相场法是一种将材料结构和热力学性质联系起来的方法,它能够有效地模拟晶粒的长大过程并预测材料的结构和性能。本文所采用的相场模型是基于Cahn-Hilliard方程和Allen-Cahn方程的二次相场模型。其中,Cahn-Hilliard方程描述了晶界的自由能密度,而Allen-Cahn方程则描述了晶粒的彼此之间的界面能密度。本篇文章将介绍如何使用相场法模拟金属铜的晶粒的长大过程,并提供完整的MATLAB代码供读者参考。

m0_47037246的博客 1382

[565]python语言转换库snowballstemmer

安装 pip install snowballstemmer 这是一款非常瘦小的语言转换库,支持15种语言。 'danish': 丹麦语, 'dutch': 荷兰语, 'english': 英语, 'finnish': 芬兰语, 'french': 法语, 'german': 德语, 'hungarian': 匈牙利语, 'ita...

周小董 3850

【Unity优化篇】| Unity3D场景 常用优化策略,遮挡剔除、层消隐距离技术 和 LOD多层次细节

本篇文章来简单介绍一下 Unity中几种常用3D场景优化策略 方法 对于整个项目来说,本文中出现的方法也只是冰山一角,慢慢积累学习吧! 内容包括遮挡剔除(Occlusion Culling)、层消隐距离技术 和 LOD多层次细节

努力前行,总会成为自己心中的那道光 1万+

11个你可能不知道的Python库

在有如此之多的Python包,几乎没有人能够全盘掌握。 光是PyPI就可单独列出47,000个包! 近日,听到很多数据科学家切换到Python的消息,我不由地想到,虽然他们得到了pandas、scikit-learn和numpy的一些巨大好处,但却错过了一些稍微老一点但同样能提供帮助的Python库。 在该文中,我将介绍一些鲜为人知的库。即使你已经是Python高手,也应该看看,可能会有那么一...

Python初级训练营,一起跟随老师学习吧 332

C#怼倍福TwinCAT3:ADS协议封装实战(附完整读写源码+避坑清单)

变量名大小写敏感:PLC里定义的是GVL.bStart,你写GVL.BStart绝对读不到;数组访问格式:PLC数组是,C#里读单个元素要写,读整个数组不用写索引;句柄要释放:用创建的句柄,一定要用using包起来,否则会占着资源;PLC必须运行:哪怕变量定义对了,PLC没Run(只是Login)也读不到数据;路由配置:如果上位机和PLC不在一个网段,要在TwinCAT3里添加路由(Router→Edit Routes)。倍福ADS通信其实不难,核心就是“配置对+变量名写对+数据类型匹配”。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 949

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python语言属于自然语言吗_Python自然语言处理之词干,词形与最大匹配算法代码详解...

本文主要对词干提取及词形还原以及最大匹配算法进行了介绍和代码示例,Python实现,下面我们一起看看具体内容。自然语言处理中一个很重要的操作就是所谓的stemming和lemmatization,二者非常类似。它们是词形规范化的两类重要方式,都能够达到有效归并词形的目的,二者既有联系也有区别。1、词干提取(stemming)定义:Stemmingistheprocessforreducinginf...

weixin_39837124的博客 378

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

nltk词干提取

在自然语言处理的词干提取中,不同语言的提取规则不同,在python中,使用 nltk.stem.snowballStemmer 处理 具体如下: from nltk import SnowballStemmer>>> SnowballStemmer.languages (u'danish', u'dutch', u'english', u'finnish', u'french',

thystar的专栏 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

nltk.stem 词干提取(stemming)

Stemming 可以抽取词的词干或词根形式,NLTK中提供了三种最常用的词干提取器接口 '''基于Porter词干提取算法''' from nltk.stem.porter import PorterStemmer porter_stemmer = PorterStemmer() porter_stemmer.stem(‘multiply’) # u’multipli’ ...

冷月无声的博客 9648

python自然语言处理(一)NLTK初步使用

NLTK是Python很强大的第三方库,可以很方便的完成很多自然语言处理(NLP)的任务,包括分词、词性标注、命名实体识别(NER)及句法分析。  一 nltk安装教程      首先,保证已经安装成功python。然后终端输入命令:pip install nltk;安装完成后,输入import nltk了,然后输入nltk.download(),这样就可以打开一个NLTK Downloade

a18852867035的博客 1万+

解密NLP:从入门到精通

自然语言处理(NLP)是计算机科学与人工智能的重要交叉领域,主要研究人机自然语言交互的理论与方法。其核心应用包括机器翻译、情感分析、信息抽取、问答系统等,基础技术涵盖分词、词性标注、句法分析等。NLTK是Python常用的NLP工具包,提供丰富的语料库和文本处理功能。本文重点介绍了字符串处理技术,包括清理替换(strip/replace)、截取、连接分割(join/split)、比较排序(sorted)以及查找(index)等操作,通过代码示例展示了具体实现方法。这些基础技术为后续NLP任务提供了必要的文本

渣渣盟的博客 3522

自然语言处理——词性标注、词干提取、词形还原

目录前言方法工具实例 前言 一般而言,文本里的动词可能比较重要,而助词可能不太重要: 我今天真好看 我今天真好看啊 甚至有时候同一个词有着不同的意思: 我一把把把把住了 越是常用的词,不同的用法越多。由于兼类使用程度高,兼类现象涉及汉语中大部分词类,因而造成在汉语文本中词类歧义排除的任务量巨大。 那么这个时候可以先对词汇进行词性标注(即在文本中判定每个词的语法范畴,确定其词性并加以标注的过程),再基于词性提取关键词。因此,词性标注为文本处理提供了相当关键的信息。 方法 基于规则的词性标注方法:较早

weixin_44853840的博客 3621

词干提取(stemming)和词形还原(lemmatization)

今天想完成词干提取的功能,发现提出来的结果并不是有意义的单词,原来还有词形还原这个技术。 以下内容均摘自论文《词形还原方法及实现工具比较分析》 词形还原(lemmatization),是把一个任何形式的语言词汇还原为一般形式(能表达完整语义),而词干提取 (stemming)是抽取词的词干或词根形式(不一定能够表达完整语义)。词形还原和词干提取是词形规范化的两类 重要方式,都能够达

march_on的专栏 4万+

词干提取(stemming)与词形还原(lemmatization)

在英语中,一个单词常常是另一个单词的“变种”,如:happy=>happiness,这里happy叫做happiness的词干(stem)。在信息检索系统中,我们常常做的一件事,就是在Term规范化过程中,提取词干(stemming),即除去英文单词分词变换形式的结尾。 应用最为广泛的、中等复杂程度的、基于后缀剥离的词干提取算法是波特词干算法,也叫波特词干器(Porter Stemmer)。

happylobster 1万+

NLP学习笔记31-信息抽取 详解信息抽取snowball算法

NLP学习笔记31-信息抽取_bohu83的博客-优快云博客_nlp信息抽取

studyvcmfc的专栏 700

机器学习---文本特征提取之词袋模型(Machine Learning Text Feature Extraction Bag of Words)...

假设有一段文本:"I have a cat, his name is Huzihu. Huzihu is really cute and friendly. We are good friends." 那么怎么提取这段文本的特征呢? 一个简单的方法就是使用词袋模型(bag of words model)。选定文本内一定的词放入词袋,统计词袋内所有词在文本中出现的次数(忽略语法和单词出现的顺...

weixin_33976072的博客 1031

笔记:关系抽取算法之Snowball

**信息抽取**指的是从非结构化文本中提取结构化信息的一类技术。定义为:从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。 信息抽取肯定离不开**命名实体识别(NER)**和**关系抽取**,这里就主要说一下关系抽取中的一种算法**Snowball**。 说到Snowball,我们先从Bootstrap说起,Bootstrap是一种基于半监督和无监...

weixin_46249816的博客 5032
上一篇: 有关Lucene的问题(8):用Lucene构建实时索引的文档更新问题
下一篇: 微软收购社交监控分析公司Netbreeze
ArvinStudy
博客等级 码龄15年 83粉丝 193原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值