是否可以使用基于空间规则的匹配而不定义关键字之间的顺序或单词数?



我正在尝试使用空间匹配文档中包含(两个(两个关键字("狐狸"和"狗"(的句子。我的问题是我不想总是指定单词的顺序,或者对感兴趣的单词之间的单词进行编号。我只想匹配它们都存在的句子。 可以这样做吗?

例如,是否可以编写一个同时匹配句子 1 和句子 2 的规则,但不匹配句子 3 或句子 4。

sentence1 = 'The quick brown fox jumps over the lazy dog.'
sentence2 = 'The quick fox is brown and jumps over the lazy dog.'
sentence3 = 'There is a fox in my back garden'
sentence4 = 'There is a dog in my back garden'

典型的空间匹配规则如下所示:

pattern = [{"LEMMA": "dog"}, {"LEMMA": "fox"}]

显然,这在我的情况下不起作用,因为 spacy 希望狗和狐狸彼此相邻。

您是否尝试过拆分句子,然后检查单词?在您的示例中,

list1 = sentence1.split()
list2 = sentence2.split()
count = 0
for word in list1:
if word in list2:
count += 1
print('Match words =', count)

如果您只想数一次单词,并且不想考虑大写字母,那么

set1 = set(sentence1.lower().split())
set2 = set(sentence2.lower().split())
count = 0
for word in set1:
if word in set2:
count += 1
print('Match words =', count)

将其与您的代码一起使用:

{"OP":"|"}

最新更新