У меня есть текст текста и 2 ключевых слова k1, k2. Я хочу найти все экземпляры, где k1 и k2 встречаются в непосредственной близости от 5 слов. Теперь я хочу, чтобы хранить 2 части информации из этой категории -[tricky] Поиск нескольких вхождений пар слов на основе близости. Python
- Числа таких матчей
- слова мудрого позиции лучшего матча. «Лучшее» здесь означает совпадение с максимальной близостью между k1 и k2. Это так, что я могу позже работать больше в этом матче.
У меня есть письменный код, но он не может найти матч, как показано ниже. Кроме того, это не дает мне количество совпадений или словосочетание.
import re
text = 'the flory of gthys inhibition in this proffession by in aquaporin protein-1 its inhibition by the state of the art in aquaporin 2'
a = 'aquaporin protein-1'
b = 'inhibition'
diff=500
l = re.split(';|,|-| ', text)
l1 = re.split(';|,|-| ', a)
l2 = re.split(';|,|-| ', b)
counts=[m.start() for m in re.finditer(a, text)]
counts1=[m.start() for m in re.finditer(b, text)]
for cc in counts:
for c1 in counts1:
if abs(cc-c1) < diff:
diff = abs(cc-c1)
values = (cc, c1)
if text.find(a) < text.find(b):
r= (l.index(l2[0]) - l.index(l1[-1]))
if text.find(a) > text.find(b):
r= (l.index(l1[0]) - l.index(l2[-1]))
if r<5:
print 'matched'
print r
Почему вы удалили код, который вы размещены? Я предлагаю откинуть его назад. –
@stribizhev Я думал, что это не очень хорошо. Однако я добавил его обратно. Благодаря! – Ciitk34
Возможно, это не так, но это дает важную информацию, например, тот факт, что kw может быть фразами, плюс дает возможность aswerer хороший старт. – Akis