如何处理任何 nlp 问题的连字符英文单词?

数据挖掘 nlp 预处理 tfidf 标记化 词袋
2022-03-12 15:31:49

我正在对英文文本数据集进行预处理。我遇到像“众所周知”这样的连字符。会有用吗

  • 如果我将连字符作为特殊字符删除并将其视为单个单词“众所周知”或
  • 将单词分为 2 'well' 和 'known' 或
  • 在向量创建(BOW/TF-IDF)过程中使用所有 3 个词 'well' 、 'known' 、 'wellknown' 进行模型输入。

对此的任何快速帮助将不胜感激。谢谢你。

3个回答

它们听起来都很有趣。我认为第一个更好,因为它允许在一定程度上理解看不见的连字词(例如,众所周知的+已知的〜=众所周知的)。

对于 tfidf BOW 模型,您可能会从上述任何一项中获得良好的性能。

对于对词序敏感的模型,我当然会选择第一个选项,并可能对文本进行标记,以便我也有一个标记来表示连字符。

我同意尼古拉斯的回答,还有一些想法:

  • 您可以使用标准的英语标记器(例如 nltk、Spacy),只要看看它们如何处理连字符的单词。同样,您可以检查它是如何在预标记数据集中完成的,但请注意,遵循的标记化约定可能因一个数据集与另一个数据集不同。
  • 恕我直言,选择取决于任务/应用程序,并在某种程度上取决于数据的大小:如果数据很大,选项 1 可能更可取,因为相同的连字词可能会出现多次。但是,如果数据很小,那么选项 2 会更好,因为它允许与单个令牌进行部分匹配。
  • 选项 3 是选项 1 和 2 之间有趣的折衷方案,但它的缺点是稍微弄乱了单词的分布。

1和3会很好。将“well-known”与“well”和“known”分开不是一个好主意,因为您丢失了信息和/或有错误/无用的计数。