Различные программные проекты имеют разные соглашения о кодировании;даже в одном проекте могут использоваться разные языки, и они будут иметь разные соглашения.Что хорошо для поиска документации (которая появляется вне исходных файлов), с идентификаторами токенов из исходного кода?
Например, если источник имеет 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)
где первое значение - это расстояние Левенштейна, второе - расстояние, разделенное на длину совпадающего слова.Я думаю
- изучить Jaccard, алгоритмы Tanimoto
- intellisence / предложить своего рода код
- Где-то в SO были сообщения о некоторых алгоритмах, которые используют биологические парнидля соответствующих последовательностей
- Придумайте правила цепочки регулярных выражений, основанные на http://en.wikipedia.org/wiki/Naming_convention_%28programming%29
, последний из которых буквально является последним вариантом.Как вы думаете, какие еще алгоритмы могли бы дать лучшие результаты для такого рода вещей?