如何用非单词标记识别文本中的单词?

zeb*_*bra 7 algorithm nlp lexical-analysis

我目前正在解析一堆邮件,并希望从邮件中获取单词和其他有趣的标记(即使拼写错误或字符和字母的组合,如"zebra21"或"customer242").但我怎么知道"0013lCnUieIquYjSuIA"和"anr5Brru2lLngOiEAVk1BTjN"不是单词而且不相关?如何提取单词并丢弃编码错误或pgp签名部分或我们在邮件中获得的其他内容的令牌,并知道我们永远不会对这些令牌感兴趣?

sho*_*osh 3

您需要为单词确定一个足够好的标准,并编写正则表达式或手册来强制执行它。
可以从您的示例中推断出一些规则:

  • 单词可以以大写字母开头,也可以全部大写字母,但如果单词中有超过 2 个大写字母和 2 个以上小写字母,则它不是单词
  • 如果单词中有数字,那么它就不是单词
  • 如果比指定的长度长,则为 20 个字符

没有什么魔术。你需要决定你想要的规则是什么并让它们发生。

另一种方法是训练某种隐马尔可夫模型系统来识别听起来像单词的东西,但我认为这对于你想做的事情来说是一种矫枉过正。