用于标记英文文本的正则表达式

OTZ*_*OTZ 8 regex text nlp

标记英文文本的最佳正则表达式是什么?

通过英文标记,我的意思是一个由最大数量的字符组成的原子,可以有意义地用于NLP目的.类比是任何编程语言中的"标记"(例如,在C中,'{','[','hello','&'等可以是标记).有一个限制:虽然英文标点字符可以是"有意义的",但为了简单起见,当它们没有出现在\ w +的中间时,让我们忽略它们.所以,"你好,世界." 收益'你好'和'世界'; 同样地,"你很好看." 可能会产生[你,是,好看]或[你,好,好看].

dmc*_*cer 5

树库标记化

Penn Treebank(PTB)标记化是用于自然语言处理(NLP)工作的相当常见的标记化方案.

您可以在此处找到带有相应正则表达式的sed脚本以获取此标记.

软件包

但是,大多数NLP包提供了随时可用的标记化程序,因此您不需要编写自己的标记生成器.例如,如果你正在使用Python,你可以只使用TreebankWordTokenizer提供NLTK.如果您使用的是基于Java的Stanford Parser,它将默认使用其edu.stanford.nlp.processor.PTBTokenizer对您提供的任何句子进行标记.


Mar*_*ers 2

您可能不应该尝试使用正则表达式来标记英语文本。在英语中,一些标记有几种不同的含义,你只能通过理解它们所在的上下文才能知道哪个是正确的,这需要在一定程度上理解文本的含义。例子:

  • 该字符'可以是撇号,也可以用作单引号来引用某些文本。
  • 句号可以是句子的结尾,也可以表示缩写。或者在某些情况下它可以同时履行这两个角色。

尝试使用自然语言解析器。例如,您可以使用斯坦福解析器。它是免费使用的,并且在标记英语文本方面比任何正则表达式都做得更好。但这只是一个示例 - 您还可以使用许多其他 NLP 库。