Python:语言规范化

时间:2017-04-25 13:05:44

标签: python nlp nltk

我正在寻找一个词汇化模块/ lib,它会传递一个句子,如:
 “这是很好”到“这是<​​strong>好”。

我熟悉nltk中可用的一些工具,例如词干和词形还原,但它并不是我正在寻找的

我的目标是尽可能减少说同样事情的各种方式。

2 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。

1)您可以使用预定义的一组同义词来替换单词,例如WordNet。您可以使用nltk包使用WordNet语料库。

nltk文档有一个很好地解释了this的例子。

此方法仅涵盖预定义的同义词,并且不会“学习”#34;您正在使用的数据中的类似概念。例如,起重机可以是车辆或鸟类。

2)另一种方法是使用LSA来识别语料库中单词用法的类似概念。

如果您将文本视为单词的向量(语料库中的每个单词),则向量具有V维,其中V是语料库中唯一单词的总数。意思是,你试图解决的问题是减少维数。 LSA适用于减少维数。

wikipedia上阅读有关LSA的更多信息。

您可以使用sklearn's TruncatedSVD class来使用LSA方法。

答案 1 :(得分:2)

这是一个更实验性的,但另一种可能性是使用单词嵌入。

单词 great good 应该具有相似的出现上下文,因此它们的向量应该相似,你将这些单词聚类,并将它们聚合成相同的单词/概念

当然,这在很大程度上取决于您用来生成嵌入的语料库和方法。