英语单词的最佳定义是什么?
英语单词的其他案例不仅仅是\w+
?
有些可能包括\w+-\w+
或\w+'\w+
;有些人可能会排除\b[0-9]+\b
之类的案件。但我还没有看到
对这些案件的任何普遍共识。
我们有这样的正式定义吗?
你们任何人都可以澄清一下吗?
(编辑:扩大问题,使其不仅仅依赖于正则表达式。)
答案 0 :(得分:6)
我真的不认为正则表达式会在这里帮助你,英语(或任何语言)文本的问题是上下文。如果没有它,你可以确定单词边界之间的区别是文本,数字,随机字符集等。对于NLP,我认为你将选择语言的一个子集并寻找特定的单词而不是尝试从字符串中提取所有“单词”。
答案 1 :(得分:3)
检查单词是否为英语的最佳方法是在字典中查找。如果它在英语单词词典中,那么它就是英语单词。有可能一个单词也可以在英语词典和法语词典中。例如,“我”既是法语又是英语单词。
我相信你可以在网上找到很多可下载的词典。你也可以自己做。例如,您可以下载English version of Wikipedia并假设所有找到的单词都是英文单词。您可能会也可能不会过滤掉数字。
正则表达式不会告诉您单词是否为英语。例如xyvfg匹配你的模式\ w'但肯定不是英文单词。
编辑: 理论上,使用英语语音学,可以判断一个单词的语音转录是否可由英语发音者发音。英语单词有很多单词,实际上不是英语单词。这可以考虑将来可能出现在英语中的单词。然而,在语音转录和文本之间进行翻译是一个非常具有挑战性的问题,因为相同的语音转录可能存在许多不同的拼写。我不知道是否有人这样做过。这可能是一个有趣的理论练习。我不确定这在现实世界的NLP中会非常有用。
答案 2 :(得分:1)
让我们具体一点,试着通过例子来巩固基础。
Is 'word' an English word? YES
49th? YES
NYSE? YES
Résumé? YES
Haight-Ashbury? YES/NO?
good-looking? YES/NO?
P&G? YES/NO?
1023? YES/NO?
304-392-9999? YES/NO?
3.14? YES/NO?
答案 3 :(得分:1)
答案 4 :(得分:0)
一个真正的英语单词几乎永远不会包含重音符号或外来字符 - 所以\ w +可能会捕获比你更多的东西,尽管使用了多个单词在英语中,我们借用了其他语言 - 我们大多数人可能没有时间或倾向于打扰他们,所以。我甚至懒得写'尽管'在那里完全 - \ w +'\ w +不会捕获它。一般来说,只要你的\ w +正确地捕捉你的单词,我就不会想到任何其他标点符号 - 并且'可能会遇到中间词。
答案 5 :(得分:0)
您的问题称为字标记化。看看这里:
http://nlp.stanford.edu/IR-book/html/htmledition/tokenization-1.html
斯坦福大学是一个非常着名的NLP实验室。他们为英语提供了最有效的解析器之一。该页面概述了一些常见的标记化问题,如
Penn Treebank Project还为单词标记化提供了一个简单的sed脚本“,它在大多数语料库上做了不错的工作”here。