Вы можете попробовать провести байесовский анализ текста:
- Загрузить список имен (и их частоты) в вашу программу. Возможно, стоит пометить имена на этом этапе. Так, например CloseWindow становится Close и Window, причем частота обоих увеличивается. На этом этапе было бы также полезно загрузить некоторые не-человеческие имена функций, чтобы обучить программу и отрицательным словам.
Возьмите имя функции, и, используя только что собранные данные, найдите вероятность появления каждой детали
P ((Генерируемый человеком | Видящий токен) = P (Видящий токен | Генерируемый человеком) * P (Генерируемый человеком)) / P (Видящий токен)
В этом случае вероятность того, что что-то будет сгенерировано человеком или компьютером, будет определяться на основе известных знаний, т. Е. Какой процент имен функций считается сгенерированным человеком.
Вероятность увидеть жетон (P (Видя жетон)) должна будет постепенно эволюционировать. Он будет состоять из количества раз, которое токен виден в человеческих функциях, и количества раз, когда он виден в компьютерных функциях ... это решение основано на предпосылке, что программа изучает со временем (и, следовательно, нуждается в обучении )
Результат, P ((HumanGenerated | Seeing Token), даст вам вероятность того, что имя функции будет сгенерировано человеком.
Примечание: это только грубый набросок, многие детали отсутствуют. Если вас интересует это направление исследований, я бы предложил ознакомиться с теорией вероятностей и, в частности, с байесовским анализом