2016-05-18 3 views
2

Я пытаюсь проверить пересечение между двумя строками, используя Python. Я определил эту функцию:Проверить пересечение между двумя строками в python

def check(s1,s2): 
    word_array = set.intersection(set(s1.split(" ")), set(s2.split(" "))) 
    n_of_words = len(word_array) 
    return n_of_words 

Он работает с некоторой выборки строки, но в данном конкретном случае:

d_word = "BANGKOKThailand" 
nlp_word = "Despite Concerns BANGKOK" 

print(check(d_word,nlp_word)) 

Я получил 0. Что мне не хватает?

+0

вы разделились на пробелы, есть n ospaces в d_word, что вы ожидаете? – lejlot

+0

Опера, ты прав. Я думаю, что я не смогу выполнить свою задачу таким образом, возможно, мне придется попробовать с регулярным выражением. Как вы думаете? –

+0

regex или некоторые более продвинутые методы разделения слов из NLP – lejlot

ответ

0

Набор содержит одну строку, устанавливает две 3 строки и строку "BANGKOKThailand" не равен строке "BANGKOK".

0

Я вижу два несостоявшихся быть ошибки:

n_of_words = len(array) 

должен быть

n_of_words = len(word_array) 

и

d_word = "BANGKOKThailand" 

отсутствует пробел между ними, как

"BANGKOK Thailand" 

Фиксация этих двух изменений дала мне результат 1.

+0

Я исправил первый, но, к сожалению, «BANGKOKThailand» не имеет места (я должен принять его как есть, он определен в txt-файле, который я пытаюсь проанализировать) –

+0

Я также вижу, что вы исправили переменную word_array, поэтому рад видеть, что он работает сейчас! – RSilNav

+0

К сожалению, он не работает, я не могу добавить пробелы. Это автоматический алгоритм обработки текста, и это особый случай, который я должен рассмотреть :( –

Смежные вопросы