разделение идентификатора на соответствие документации - PullRequest
0 голосов
/ 21 марта 2011

Различные программные проекты имеют разные соглашения о кодировании;даже в одном проекте могут использоваться разные языки, и они будут иметь разные соглашения.Что хорошо для поиска документации (которая появляется вне исходных файлов), с идентификаторами токенов из исходного кода?

Например, если источник имеет self._def_passwd или this.defPasswrd , запрос к дереву документации должен стремиться соответствовать пароль по умолчанию .

До сих пор я пытался отсортировать по расстоянию Левенштейна, что хорошо работает для небольших расстояний редактирования, но при увеличении порога слишком много ложных срабатываний, что проблематично с пробелами в документации,

8 0.666667 announcement getContent AnnouncementBean.java(Token.Name.Function )
8 0.666667 announcement getPercent DataObservation.java (Token.Name.Function)
8 0.666667 announcement GroupBean GroupBean.java (Token.Name.Class)

где первое значение - это расстояние Левенштейна, второе - расстояние, разделенное на длину совпадающего слова.Я думаю

  1. изучить Jaccard, алгоритмы Tanimoto
  2. intellisence / предложить своего рода код
  3. Где-то в SO были сообщения о некоторых алгоритмах, которые используют биологические парнидля соответствующих последовательностей
  4. Придумайте правила цепочки регулярных выражений, основанные на http://en.wikipedia.org/wiki/Naming_convention_%28programming%29

, последний из которых буквально является последним вариантом.Как вы думаете, какие еще алгоритмы могли бы дать лучшие результаты для такого рода вещей?

1 Ответ

0 голосов
/ 21 марта 2011

Попробуйте использовать взвешенное расстояние редактирования, здесь вы можете кодировать знание обычной аббревиатуры, вероятных ошибок символов по расстоянию на клавиатуре. Например, вы можете установить нулевой вес для таких гласных, как [ao], а пароль будет равен pswrd. Другой вариант - построить расстояние редактирования на уровне слов и использовать здесь синонимы. Я также построил EditDistance, который работает одновременно со словами и символами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...