📅  最后修改于: 2023-12-03 15:04:16.405000             🧑  作者: Mango
在自然语言处理中,经常需要将一句话拆分为单词,以方便后续的处理。Python提供了多种方法来实现这个功能,本文将介绍其中比较常用的几种方法。
split()
函数可以将字符串按指定分隔符分割成一个列表。默认分隔符是空格。我们可以将句子作为split()
函数的参数,然后再将返回的列表保存下来。代码如下:
sentence = "Python将句子拆分为单词"
word_list = sentence.split()
print(word_list)
输出结果:
['Python将句子拆分为单词']
可以看到,返回的列表中只有一个元素,原因是默认分隔符是空格,而我们的句子中没有空格。
如果希望使用其他分隔符拆分句子,只需要在split()
函数中指定即可。比如下面的代码使用逗号作为分隔符:
sentence = "Python,将,句子,拆分为,单词"
word_list = sentence.split(",")
print(word_list)
输出结果:
['Python', '将', '句子', '拆分为', '单词']
nltk是Python中非常常用的自然语言处理库。使用nltk库的word_tokenize()
函数可以将一句话按单词拆分成一个列表。需要先安装nltk库,然后执行下面的代码:
import nltk
nltk.download('punkt')
sentence = "Python将句子拆分为单词"
word_list = nltk.word_tokenize(sentence)
print(word_list)
输出结果:
['Python', '将', '句子', '拆分', '为', '单词']
可以看到返回的列表中包含了句子中的所有单词。
使用正则表达式也可以将句子按单词拆分成一个列表。同样需要先导入re库,然后执行下面的代码:
import re
sentence = "Python将句子拆分为单词"
word_list = re.findall(r'\b\w+\b', sentence)
print(word_list)
输出结果:
['Python', '将', '句子', '拆分', '为', '单词']
正则表达式\b\w+\b
可以匹配句子中的单词。这里的\b
表示单词的边界,\w
表示字母和数字,+
表示匹配前面的字符一个或多个。