And*_*her 14 python data-cleaning data-science
我正在对python进行数据清理练习,我正在清理的文本包含我想删除的意大利语单词.我一直在网上搜索我是否可以使用像nltk这样的工具包在Python上执行此操作.
例如给出一些文字:
"Io andiamo to the beach with my amico."
Run Code Online (Sandbox Code Playgroud)
我想留下:
"to the beach with my"
Run Code Online (Sandbox Code Playgroud)
有谁知道如何做到这一点?任何帮助将非常感激.
DYZ*_*DYZ 26
您可以使用words
NLTK 的语料库:
import nltk
words = set(nltk.corpus.words.words())
sent = "Io andiamo to the beach with my amico."
" ".join(w for w in nltk.wordpunct_tokenize(sent) \
if w.lower() in words or not w.isalpha())
# 'Io to the beach with my'
Run Code Online (Sandbox Code Playgroud)
不幸的是,Io恰好是一个英文单词.一般来说,可能很难确定某个单词是否为英语.
在 MAC OSX 中,如果您尝试此代码,它仍然会显示异常。因此,请确保手动下载单词语料库。一旦您import
建立了nltk
图书馆,就可以像在 mac os 中一样,它不会自动下载单词语料库。所以你必须下载它,否则你将面临异常。
import nltk
nltk.download('words')
words = set(nltk.corpus.words.words())
Run Code Online (Sandbox Code Playgroud)
现在您可以执行与前人指示的相同的执行。
sent = "Io andiamo to the beach with my amico."
sent = " ".join(w for w in nltk.wordpunct_tokenize(sent) if w.lower() in words or not w.isalpha())
Run Code Online (Sandbox Code Playgroud)
根据NLTK文档,它并没有这么说。但我在 github 上遇到了一个问题,并以这种方式解决了,它确实有效。如果您不将word
参数放在那里,您的 OSX 可能会注销并一次又一次地发生。