2010-08-05 2 views
1

У меня есть сценарий python, который получает текстовые сообщения от пользователей и обрабатывает их как запрос. Тем не менее, некоторые пользователи имеют подписи, автоматически добавляемые к их сообщениям, и сценарий неправильно рассматривает их как фактическое содержимое. Каков наилучший программный способ распознавания и удаления этих подписей?Удалить подпись из полученного сообщения

(я предпочел бы в питоне, но я хорошо с любым другим языком тоже, как и просто сказать это в псевдокоде)

ответ

1

Если подписи добавляются в тело сообщения таким образом, что они на самом деле часть текста тела, то есть только два способа удалить их:

  • эвристики, такие как «что-нибудь следующие три тире должны быть подписи ». Они могут быть эффективными, если вы потратите некоторое время на их настройку.
  • Классификатор. Это большая работа по настройке и требует, чтобы вы «тренировали» ее, отмечая некоторые части сообщений в качестве подписи. Они также могут быть очень эффективными, но как эвристика никогда не будет работать в 100% случаев.
+0

Не могли бы вы объяснить немного больше о том, как будет работать классификатор? – yydl

+0

@Joseph: Классификатор представляет собой алгоритм, такой как нейронная сеть, SVM или байесовский фильтр, который «обучен» на известном корпусе, а затем применяется к неизвестному корпусу (возможно, с обратной связью, когда он делает ошибку). Реализация одного нетривиальна. – Borealid

1

Если подпись всегда следует определенный шаблон, вы должны быть в состоянии использовать только регулярное выражение, чтобы обрезать его.

Однако, если пользователь может настроить свою подпись по своему желанию, а в начале нет ведущих символов (то есть: --), это будет очень сложно. Единственным надежным способом сделать это было бы знать содержание подписи для каждого пользователя заранее, чтобы вы могли его исключить. Представьте, что в худшем случае: кто-то всегда мог отправить пустое сообщение с подписью, которая была полностью действительным «запросом». Для сценария не будет возможности отличать это от сообщения «запрос» без подписи.