我正在尝试使用空间匹配文档中包含(两个(两个关键字("狐狸"和"狗"(的句子。我的问题是我不想总是指定单词的顺序,或者对感兴趣的单词之间的单词进行编号。我只想匹配它们都存在的句子。 可以这样做吗?
例如,是否可以编写一个同时匹配句子 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":"|"}