使用NLTK

时间:2018-01-10 12:20:13

标签: python nlp nltk data-cleaning

我开始使用nltkpython分析聊天语料库。首先,我想确定最常用的单词,然后我想使用LDA来识别对话的主题。 我将文本清理为:

stop = set(stopwords.words('english'))
stop.update(['.', ',', '"', "'", '?', '!', ':', ';', '(', ')', '[',']', '{', '}', '@', '#', 'http', 'https', '/', '://', '_'])
p_stemmer = PorterStemmer()
texts = ['bla bla xxxxxx', 'hahahah', 'haha xx', ... 'hello xx']

我分析的许多单词包括xxxxxxxxxhahahahahahaha。在预处理之后,我获得xxxxxx等的单独值。如何将xxxxxx(或hahahaha视为同样的话?是否有任何功能可以让我这样做?

1 个答案:

答案 0 :(得分:0)

使用正则表达式检查所有这些令牌:

import re
re.compile('(?:ha)+|(?:xx)+')

texts = ['bla bla', 'hahahah', 'xxx', 'hello']

pattern = re.compile('(?:ha)+|(?:xx)+')

for t in texts:
 if pattern.match(t):
    print('matched')
 else:
    print('not matched')

此程序将检查 ha xx 出现一次或多次的字词,然后打印匹配的不匹配因此