下面将包含以下的主题:词干提取器、词性还原、
一、形态学简介
形态学可以定义为在语素的帮助下对标识符的构成进行研究,语素是承载含义的基本语言单位。语素有两种类型:词根和词缀。
词根也被称之为自由语素,他们可以在不添加词缀的情况下而存在,比如unbelievable,这里的believe被称为词根,这里的un
和able被称为词缀
二、理解词干提取器
词干提取被定义为一个通过除单词中的词缀以获取词干的过程。以单词raining为例,词干提取器通过从raining中去除词缀来返回词根rain。
有几种返回词干提取器的方法:PorterStemmer()、LancasterStemmer()、RegexpStemmer()、SnowballStemmer()
import nltk
from nltk.stem import PorterStemmer
stemmerporter = PorterStemmer()
print(stemmerporter.stem('working'))
print(stemmerporter.stem('happiness'))import nltk
from nltk.stem import LancasterStemmer
stemmerlan=LancasterStemmer()
print(stemmerlan.stem('working'))
print(stemmerlan.stem('happiness'))import nltk
from nltk.stem import RegexpStemmer
stemmerregexp=RegexpStemmer('ing')
print(stemmerregexp.stem('working'))
print(stemmerregexp.stem('happiness'))
print(stemmerregexp.stem('pairing'))import nltk
from nltk.stem import SnowballStemmer
print(SnowballStemmer.languages)
spanishstemmer=SnowballStemmer('spanish')
print(spanishstemmer.stem('comiendo'))
frenchstemmer=SnowballStemmer('french')
print(frenchstemmer.stem('manger'))
三、理解词型还原
import nltk
from nltk.stem import WordNetLemmatizer
lemmatizer_output=WordNetLemmatizer()
print(lemmatizer_output.lemmatize('working'))
print(lemmatizer_output.lemmatize('working',pos='v'))
print(lemmatizer_output.lemmatize('works'))#词干还原和词型还原的区别
import nltk
from nltk.stem import PorterStemmer
from nltk.stem import WordNetLemmatizer
stemmer_output=PorterStemmer()
print(stemmer_output.stem('happiness'))
lemmatizer_output=WordNetLemmatizer()
print(lemmatizer_output.lemmatize('happiness'))
四、为非英文语言开发词干提取器
Polyglot是一个提供被称作morfessor模型的软件,该模型用于从标识符中获取语素。在Polyglot的词汇帮助下,已经使用了涉及不同语言的50000个标识符的morfessor模型