【发布时间】:2020-02-16 07:49:21
【问题描述】:
在对大型语料库中的多个句子进行标记时,我需要将某些单词保留为原始形式,例如 .Net, C#, C++。我还想删除标点符号(.,!_-()=*&^%$@~ 等),但需要保留 .net, .htaccess, .htpassword, c++ 等字词。
我尝试了nltk.word_tokenize 和nltk.regexp_tokenize,但没有得到预期的输出。
请帮我解决上述问题。
代码:
import nltk
from nltk import regexp_tokenize
from nltk.corpus import stopwords
def pre_data():
tokenized_sentences = nltk.sent_tokenize(tokenized_raw_data)
sw0 = (stopwords.words('english'))
sw1 = ["i.e", "dxint", "hrangle", "idoteq", "devs", "zero"]
sw = sw0 + sw1
tokens = [[word for word in regexp_tokenize(word, pattern=r"\s|\d|[^.+#\w a-z]", gaps=True)] for word in tokenized_sentences]
print(tokens)
pre_data()
tokenized_raw_data 是一个普通的文本文件。它包含多个句子,中间有空格,由 .blog、.net、c++、c#、asp.net、.htaccess 等词组成。
例子
['.blog 是一个供博客使用的通用顶级域'.,
'C# 是一种通用的、多范式的编程语言'。,
'C++ 是面向对象的编程语言'。]
【问题讨论】:
标签: python python-3.x list nltk tokenize