Я пытаюсь классифицировать повествования на основе определенного словаря ключевых слов. Мой подход заключается в том, чтобы определить ключевое слово с наименьшим расстоянием между строками и комментарием. Это работает довольно хорошо, но я столкнулся с одним примером, где этот подход не показался подходящим. Ниже приведен фрагмент кода
#a is the narration and b(s) are some keywords
a = "PRAJA GHUPTA UTAMA Trf Inw RTGS PT BANK NEGARA INDONESIA (PERSERO) TBKPRAJA GHUPTA UTAMA"
b1 = "tarik"
b2 = "pajak"
b3 = "trf inw rtgs"
#After loading stringdist library
dis1 = stringdist(tolower(a),b1,method = "jw")
dis2 = stringdist(tolower(a),b2,method = "jw")
dis3 = stringdist(tolower(a),b3,method = "jw")
#Output
> dis1
[1] 0.3810606
> dis2
[1] 0.3143939
> dis3
[1] 0.4406566
Насколько я понимаю, функция stringdist сначала перезаписывает строку меньшей длины, чтобы соответствовать большей длине, а затем вычисляет расхождение на основе количества итераций, необходимых для соответствия строки.
Что я не понимаю, так это то, что b3
является подстрокой повествования a
, но при этом не имеет расстояния в шкафу по сравнению с другими ключевыми словами.
Хотел бы узнать, есть ли за этим какая-то причина и какой другой альтернативный подход я могу попробовать для лучшего соответствия?