python 词形还原
时间: 2023-10-04 22:13:15 浏览: 56
在Python中,可以使用nltk模块中的WordNetLemmatizer函数来进行词形还原。以下是一个示例的Python代码:
```
from nltk.stem import WordNetLemmatizer
wnl = WordNetLemmatizer()
# 词形还原名词
print(wnl.lemmatize('cars', 'n'))
print(wnl.lemmatize('men', 'n'))
# 词形还原动词
print(wnl.lemmatize('running', 'v'))
print(wnl.lemmatize('ate', 'v'))
# 词形还原形容词
print(wnl.lemmatize('saddest', 'a'))
print(wnl.lemmatize('fancier', 'a'))
```
输出结果为:
```
car
man
run
eat
sad
fancy
```
以上代码中,'n'代表名词,'v'代表动词,'a'代表形容词。通过指定单词的词性,WordNetLemmatizer函数可以将单词还原为字典中的原型词汇。
相关问题
python 文本清理词根化和词形还原
文本清理、词根化和词形还原在自然语言处理中都是非常常见的步骤。下面我介绍一下 Python 中常用的库及其使用方法。
1. 文本清理
文本清理的目的是去除文本中的噪声数据,例如标点符号、数字、特殊符号等等。可以使用 Python 的 re 模块来进行正则表达式匹配,从而实现文本清理。
```python
import re
text = "Hello, world! This is a sample text with some noise data. 1234%$#@"
# 去除标点符号和数字
cleaned_text = re.sub(r'[^\w\s]', '', text)
cleaned_text = re.sub(r'\d+', '', cleaned_text)
print(cleaned_text)
# Output: Hello world This is a sample text with some noise data
```
2. 词根化
词根化的目的是将单词转换为它们的词根形式。可以使用 Python 的 NLTK 库中的 SnowballStemmer 类来进行词根化。
```python
from nltk.stem import SnowballStemmer
stemmer = SnowballStemmer("english")
word = "running"
stemmed_word = stemmer.stem(word)
print(stemmed_word)
# Output: run
```
3. 词形还原
词形还原的目的是将单词转换为它们的基本形式,例如动词的原形。可以使用 Python 的 NLTK 库中的 WordNetLemmatizer 类来进行词形还原。
```python
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
word = "running"
lemma_word = lemmatizer.lemmatize(word, pos='v')
print(lemma_word)
# Output: run
```
需要注意的是,词形还原需要指定单词的词性(pos),否则可能会得到错误的结果。在上面的例子中,我们将单词的词性设置为动词(pos='v')进行了词形还原。
python使用nltk库对英文文本进行词形还原
可以使用nltk库中的WordNetLemmatizer类来对英文文本进行词形还原。以下是一个简单的例子:
```python
from nltk.stem import WordNetLemmatizer
# 创建一个WordNetLemmatizer对象
lemmatizer = WordNetLemmatizer()
# 定义一段英文文本
text = "He was running and eating at the same time. He has bad habit of swimming after playing long hours in the Sun."
# 将文本分词,并对每个词进行词形还原
words = text.split()
lemmatized_words = [lemmatizer.lemmatize(word) for word in words]
# 输出词形还原后的文本
print(" ".join(lemmatized_words))
```
输出结果为:
```
He wa running and eating at the same time. He ha bad habit of swimming after playing long hour in the Sun.
```
可以看到,词形还原后,文本中的词被还原成了它们的原型形式,例如"running"变成了"run","swimming"变成了"swim"。