Допустим, у меня есть следующая строка:Частота слов в строке без пробелов и специальных символов?
"hello&^uevfehello!`.<hellohow*howdhAreyou"
Как бы я идти о подсчете частоты английских слов, которые подстроки это? В этом случае я хотел бы результат, такие как:
{'hello': 3, 'how': 2, 'are': 1, 'you': 1}
Я искал предыдущий вопрос, были похожи на этот, но я не мог найти ничего, что работает. Близкое решение, казалось, использовало регулярные выражения, но это тоже не сработало. Возможно, потому, что я неправильно это реализовал, так как я не знаком с тем, как это работает.
How to find the count of a word in a string? это последний ответ
from collections import *
import re
Counter(re.findall(r"[\w']+", text.lower()))
Я также попытался создать очень плохую функцию, которая перебирает каждое возможное расположение последовательных букв в строке (до макс 8 букв или около того). Проблема с выполнением что
1) это путь дольше, чем это должно быть и
2) он добавляет дополнительные слова. ex: если «hello» был в строке, «ад» также был бы найден.
Я не очень хорошо знаком с регулярным выражением, что, вероятно, является правильным способом для этого.
Чтобы подсчитать частоту английских слов, этого недостаточно. Вам нужно будет использовать что-то вроде [ntlk] (http://www.ntlk.org), и даже тогда это будет сложно, потому что у вас нет разделителей для слов. – msvalkon
У вас есть функция или словарь для определения английских слов? –
У меня был список английских слов, в которых я сравнивал части строки, но это не помогло. – Howcan