我目前正在解析一堆邮件,并希望从邮件中获取单词和其他有趣的标记(即使有拼写错误或字符和字母的组合,如“zebra21”或“customer242”)。但是我怎么知道“0013lCnUieIquYjSuIA”和“anr5Brru2lLngOiEAVk1BTjN”不是单词而且不相关呢?如何提取单词并丢弃编码错误的标记或 pgp 签名的一部分或我们在邮件中收到的任何其他内容,并且知道我们永远不会对这些感兴趣?
最佳答案
您需要为一个词确定一个足够好的标准,并编写一个正则表达式或手册来执行它。
可以从您的示例中推断出一些规则:
- 单词可以以大写字母开头,也可以全部是大写字母,但如果一个单词中有 2 个以上的大写字母和 2 个以上的小写字母,则它不是单词
- 如果单词中有数字,则不是单词
- 如果比say长,20个字符
没有魔术。你需要决定你想要的规则是什么,并让它们发生。
另一种方法是训练某种隐式马尔可夫模型系统来识别听起来像单词的东西,但我认为这对于您想做的事情来说有点矫枉过正。
关于algorithm - 如何使用非单词标记识别文本中的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1994880/