Я в настоящее время анализирую набор писем и хочу вытащить слова и другие интересные маркеры из писем (даже с орфографическими ошибками или комбинацией символов и букв, как "zebra21" или "customer242"). Но как я могу знать, что "0013lCnUieIquYjSuIA" и "anr5Brru2lLngOiEAVk1BTjN" не являются словами и не релевантные? Как извлечь слова и маркеры отбрасывания, которые кодируют ошибки или части pgp подписи или независимо от того, что мы входим в письма и знаем, что никогда не будем интересоваться теми?
Вам нужно определиться с достаточно хорошими критериями для слова и написать регулярное выражение или руководство по его применению.
Несколько правил, которые можно экстраполировать из ваших примеров:
Нет никакого магического трюка. вам нужно решить, какими вы хотите, чтобы правила были, и сделать так, чтобы они осуществились.
Альтернативный способ - это научить какую-нибудь систему "Скрытых моделей Маркова" распознавать вещи, которые звучат как слова, но я думаю, что это излишество для того, что вы хотите сделать.
http://en.wikipedia.org/wiki/English_words_with_uncommon_properties
вы можете создать правила, которые отвергают что-либо с этими "необычными свойствами", чтобы построить систему, которая принимает большинство реальных слов
] Хотя я в целом согласен с ответом Шуша, его подход облегчает достижение не только высокой запоминаемости, но и низкой точности, т.е. вы получите почти все реальные слова, но и много неслыханного. Если ваше определение слова слишком ограничено, то это наоборот, но и это не то, чего вы хотите, так как тогда вы пропустили бы такие случаи, как "зебра123". Итак, вот несколько идей о том, как улучшить точность:[
]. [] Возможно, стоит подумать о том, чтобы определить, какие части письма принадлежат основному тексту, а какие являются нижними колонтитулами, как подписи pgp. Уверен, что в большинстве случаев можно найти простую эвристику, соответствующую, например, вырезать все под строкой, состоящей только из '-' -символов.[
][] В зависимости от критериев производительности вы можете проверить, является ли слово реальным или содержит ли оно реальное слово, сравнивая его со списком простых слов. В интернете легко найти достаточно исчерпывающие списки английских слов, а также вы можете составить их самостоятельно, извлекая слова из большого и чистого текстового корпуса.[
][] Используя лексический анализатор, можно отфильтровать каждый маркер, помеченный как неизвестный. [
][] Некоторые простые статистики могут подсказать вам, насколько вероятно, что что-то является словом. Жетоны, которые встречаются с высокой частотой, скорее всего, являются словами. Жетоны, которые появляются только один раз или число которых ниже определенного порога, очень вероятно, не являются словами. Обычные орфографические ошибки должны появляться не один раз, а редкие могут быть проигнорированы.[
][] Некоторые из этих предложений явно не работают для таких случаев, как "зебра123". Опять же, простое отсечение или деление на числа в слове может сделать трюк. [
] [] Мой общий подход заключался бы в том, чтобы сначала идентифицировать жетоны, которые, безусловно, являются словами (используя вышеприведенные предложения), затем идентифицировать жетоны, которые, безусловно, не являются словами (используя регулярное выражение), а затем посмотреть (глазами) на несколько сотен или тысяч оставшихся жетонов, чтобы найти общие характеристики для того, чтобы работать с ними отдельно.[
].