用Spacy掌握NLP - 第3部分

基于规则的信息提取信息提取邮政NLP用Spacy掌握 - 第3部分首先出现在数据科学方面。

来源:走向数据科学

重要的是要了解如何使用Spacy规则来识别某些文本中的模式。有些实体之类的实体之类的实体遵循严格的结构,因此可以使用确定性规则来识别它们,例如,通过使用正则表达式(Regexes)(Regexes)。Spacy简化了REGEXES的使用,可以通过使它们更加可读,而不是使用怪异的符号,您将使用Matcher Claste claster clasters分类。

正则表达式 Regexes

基于令牌的匹配

正则是指定搜索模式的字符序列。有一个python内置库,可与Regexes一起使用,称为re:https://docs.python.org/3/library/re.html

re https://docs.python.org/3/library/re.html

让我们看看一个例子。

“ Marcello Politi”“ Marcello Politi”“ Marcello danilo politi” reg = r“ Marcello \ s(danilo \ a)?politi”

在此示例中,reg模式捕获了所有先前的字符串。这种模式说“ Marcello”可以被选为“ Danilo”一词(因为我们使用符号“?”)。另外,符号“ \ s”说,在我们使用空间,选项卡或多个空格的单词之间,这并不重要。

Regexes的问题,以及许多程序员不喜欢它们的原因,是很难阅读。这就是为什么Spacy为Matcher类提供干净且生产级别的替代方案的原因。

Matcher类

让我们导入班级,看看如何使用它。 (我将解释较晚的跨度)。

导入spacyfrom spacy.matcher导入匹配匹配器。

现在,我们可以定义一个与一些早晨问候相匹配的模式,我们将这种模式标记为“晨格式”。用匹配器定义图案很简单。在这种模式下,我们期望一个单词,当转换为较低的情况下,与“良好”一词匹配,然后在“早晨”中相同,然后我们在最后接受标点符号。

我们在列表中添加所有跨度,并将列表分配给doc.spans [“ sc”]。然后,我们可以使用显示器可视化跨度