2016-05-29 4 views
-2

У меня есть набор данных, который сканируется, но также содержит записи, в которых много мусора.Обнаружение английских слов в тексте

Name: sdfsdfsdfsd 
Location: asdfdgdfjkgdsfjs 
Education: Science & Literature 

В настоящее время он хранится в MySQL и Solr.
Есть ли библиотека, которая может искать английские слова в этих полях, чтобы я мог устранить значения мусора? Я считаю, что для этого нужен словарь, а стандартный словарь unix в /usr/share/dict/ кажется достаточно для этого прецедента.

ответ

0
with open('/usr/share/dict/words') as f: 
    words = set(word.lower() for word in f.read().split() 
       # Really short words aren't much of an indication 
       if len(word) > 3) 

def is_english(text): 
    return bool(words.intersection(text.lower().split())) 
    # or 
    return any(word in words for word in text.lower().split()) 

print(is_english('usfdbg dsuyfbg cat')) 
print(is_english('Science & Literature')) 
+0

Это означало бы сложность O (n^2), так как мне пришлось бы сканировать весь список для каждой строки в моем наборе данных. –

+0

@ YashveerRana нет, точка набора - это постоянный поиск по времени для каждого элемента. 'is_english' -' O (n) 'где' n' - количество слов в тексте, и вы не можете сделать лучше, чем это. –

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