Мне пришлось решить тесно связанную проблему для проекта по извлечению исходного кода, и хотя пакет написан на Python, а не на PHP, казалось, стоит упомянуть здесь на случай, если он все еще может быть как-то полезен.Пакет Nostril (для "Nonsense String Evaluator") и предназначен для определения того, могут ли строки, извлеченные во время анализа исходного кода, быть классом / функцией / переменной / и т. Д.идентификаторы или случайная тарабарщина.Он хорошо работает и с реальным текстом, а не только с идентификаторами программ.Nostril использует n-граммы (аналогично «Детектору гиббериш» в ответе Роба Нейхауса ) в сочетании с пользовательской функцией подсчета TF-IDF .Он поставляется с предварительной подготовкой и готов к использованию «из коробки».
Пример: следующий код,
from nostril import nonsense
real_test = ['bunchofwords', 'getint', 'xywinlist', 'ioFlXFndrInfo',
'DMEcalPreshowerDigis', 'httpredaksikatakamiwordpresscom']
junk_test = ['faiwtlwexu', 'asfgtqwafazfyiur', 'zxcvbnmlkjhgfdsaqwerty']
for s in real_test + junk_test:
print('{}: {}'.format(s, 'nonsense' if nonsense(s) else 'real'))
, выдаст следующий вывод:
bunchofwords: real
getint: real
xywinlist: real
ioFlXFndrInfo: real
DMEcalPreshowerDigis: real
httpredaksikatakamiwordpresscom: real
faiwtlwexu: nonsense
asfgtqwafazfyiur: nonsense
zxcvbnmlkjhgfdsaqwerty: nonsense
Проект на GitHub , и я приветствую вклады.