精通Python自然语言处理 3 :形态学

    形态学可以定义为使用语素对单词的构成进行研究,语素是具有意义的最小语言单位。

1、形态学简介

    语素有两种类型:词根和词缀(后缀、前缀、中缀和环缀)。词根可以独立存在,词缀不能以自由的形式存在。

2、理解词干提取器

     通过去除单词中的词缀以获取词干的过程。为了提高信息检索的准确性,搜索引擎大多会使用词干提取来获取词干并将器存储为索引词。搜索引擎使用具有相同含义的同义词,这可能是一种被称为异文合并的查询扩展。

>>> from nltk.stem import PorterStemmer
>>> stemmerporter = PorterStemmer()
>>> stemmerporter.stem('working')
u'work'
>>> stemmerporter.stem('happiness')
u'happi'

Lancaster的词干提取算法

>>> from nltk.stem import LancasterStemmer
>>> stemmerlan = LancasterStemmer()
>>> stemmerlan.stem('working')
'work'
>>> stemmerlan.stem('happiness')
u'happy'

RegexpStemmer词干提取

>>> from nltk.stem import RegexpStemmer
>>> stemmerregexp = RegexpStemmer('ing')
>>> stemmerregexp.stem('working')
u'work'
3、理解词性还原

     是一个用不同的词类将一个单词转换为某种形式的过程。

>>> from nltk.stem import WordNetLemmatizer
>>> lemmatizer_output = WordNetLemmatizer()
>>> lemmatizer_output.lemmatize('working')
'working'
>>> lemmatizer_output.lemmatize('working',pos='v')
u'work'
>>> lemmatizer_output.lemmatize('works')
u'work'

词干提取和词形还原之间的区别:

>>> from nltk.stem import PorterStemmer
>>> stemmer_output=PorterStemmer()
>>> stemmer_output.stem('happiness')
u'happi'
>>> from nltk.stem import WordNetLemmatizer
>>> lemmatizer_output=WordNetLemmatizer()
>>> lemmatizer_output.lemmatize('happiness')
'happiness'
4、为非英文语言开发词干提取器

    Polyglot是一个用于提供被称作morfessor模型的软件

5、形态分析器

    在给定标识符后缀信息的前提下,形态分析可以认为是一个从标识符中获取语法信息的过程。形态分析器可以认为是一个程序,负责对给定的输入标识符进行形态学分析。它分析给定的标识符并生成诸如性别、数、词类等形态信息作为输出。代码有点问题

# -*- coding: utf-8
import nltk
import enchant
s = enchant.Dict("en_US")
tok = []

def tokenize(st1):
	if not st1:return
	for j in xrange(len(st1), -1, -1):
		if s.check(st1[0:j]):
			tok.append(st1[0:j])
			st1 = st1[j:]
			tokenize(st1)
			break
tokenize("itismyfavouritebook")
print(tok)
6、形态生成器

     是执行形态生成任务的程序。可以认为形态生成是与形态分析相反的任务。这里,如果给出单词在数、类别、词干等方面的描述,就可检索出原始的单词。例如,如果词根为go,词性为动词,时态为现在时,并且如果它与第三人称和单数主语一起出现。

https://github.com/kmike/pymorphy2  

7、搜索引擎

  PyStemmer 1.0.1由可用于执行信息检索任务和构建搜索引擎的Snowball词干提取算法组成。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值