如何在JavaScript中解析文本中的单词?
在文本页面中,我想检查每个单词。什么是最好的方式来阅读每个单词的时间?很容易找到被空格包围的单词,但一旦你开始解析文本中的单词,它就会变得复杂 除了定义我自己从文本中解析单词的方法外,是否已经构建了某种方法,可以用正则表达式或其他方法解析单词 文本中的一些单词示例如何在JavaScript中解析文本中的单词?,javascript,Javascript,在文本页面中,我想检查每个单词。什么是最好的方式来阅读每个单词的时间?很容易找到被空格包围的单词,但一旦你开始解析文本中的单词,它就会变得复杂 除了定义我自己从文本中解析单词的方法外,是否已经构建了某种方法,可以用正则表达式或其他方法解析单词 文本中的一些单词示例 word word. word(word) word's word word' "word" .word. 'word' sub-word 看看-你可以定义几乎任何你想要的解析算法。你所说的是。至少可以说,这不是一件小事,也是
word word. word(word) word's word word' "word" .word. 'word' sub-word
看看-你可以定义几乎任何你想要的解析算法。你所说的是。至少可以说,这不是一件小事,也是各大搜索引擎进行深入研究的主题。在各种服务器端语言中有许多开源标记化库(例如,请参阅斯坦福NLP和Lucene项目),但据我所知,javascript中甚至没有类似的东西。您可能需要滚动自己的:)或者可能需要在服务器端进行处理,并通过AJAX加载结果?您可以使用:
text = "word word. word(word) word's word word' \"word\" .word. 'word' sub-word";
words = text.match(/[-\w]+/g);
这将为您提供一个包含所有单词的数组
在正则表达式中,\w
表示a-z
、a-z
、0-9
或
的任何字符[-\w]
表示\w
或-
的任何字符<代码>[-\w]+表示这些字符中出现1次或更多次的任何字符
如果要将单词定义为上述表达式以外的内容,请在[-\w]
字符类中添加组成单词的其他字符。例如,如果希望单词也包含(
和)
,请将字符类设置为[-\w()]
要了解正则表达式的介绍,请访问伟大的教程。我在这里支持Richard的答案,但要补充一点,构建令牌服务器(imho)最简单的方法之一是;一些疯子已经为它建立了一个Javascript目标;因此,您可以在web浏览器中运行和执行语法(请参阅“运行时库”部分)
但我不会假装那里没有学习曲线。这很好,除非他需要每个匹配的上下文(即括号、连字符等);然后就变得很难了。但是是的,正则表达式确实适用于“单词”:)完美的答案。这是一种幼稚的标记化方法,但在99%的情况下,这就足够了。事实上,如果你需要的不仅仅是提取单词,比如构建自然语言树,那么仅仅使用正则表达式也无济于事。但我得到的印象是OP只需要一系列的单词。。。