作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段文本和索引条目,其中一些指示出现在文本中的重要多词表达 (MWE)(例如生物学文本的“海绵骨”)。我想使用这些条目在 spaCy 中构建自定义匹配器,以便我可以识别文本中出现的 MWE。一个附加要求是我需要匹配出现以保留 MWE 组成词的词形还原表示和词性标记。
我查看了执行类似操作的现有 spaCy 示例,但我似乎无法理解其中的模式。
最佳答案
Spacy 的文档对于使用 Matcher 类与多个短语不是很清楚,但是有一个多短语匹配 example在 Github repo 中。
我最近遇到了同样的挑战,我让它工作如下。我的文本文件每行包含一条记录,其中包含一个短语及其描述,由“::”分隔。
import spacy
import io
from spacy.matcher import PhraseMatcher
nlp = spacy.load('en')
text = nlp(u'Your text here')
rules = list()
# Create a list of tuple of phrase and description from the file
with io.open('textfile','r',encoding='utf8') as doc:
rules = [tuple(line.rstrip('\n').split('::')) for line in doc]
# convert the phrase string to a spacy doc object
rules = [(nlp(item[0].lower()),item[-1]) for item in rules ]
# create a dictionary for accessing value using the string as the index which is returned by matcher class
rules_dict = dict()
for key,val in rules:
rules_dict[key.text]=val
# get just the phrases from rules list
rules_phrases = [item[0] for item in rules]
# match using the PhraseMatcher class
matcher = PhraseMatcher(nlp.vocab,rules_phrases)
matches = matcher(text)
result = list()
for start,end,tag,label,m in matches:
result.append({"start":start,"end":end,"phrase":label,"desc":rules_dict[label]})
print(result)
关于spacy - Spacy 中的多词表达识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41175871/
对于linux,有系统自带的“words”文件。是否有此类字典文件的 Windows 副本? 最佳答案 虽然某些软件可能会添加一个词典文件,但 Windows 默认不包含词典文件。您可以使用 Goog
我是一名优秀的程序员,十分优秀!