Как рассчитать нормализованное подобие editex между двумя строками из отдельных столбцов - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь вычислить нормализованное подобие editex между двумя строками, используя python. До сих пор я использовал этот код, чтобы получить исходное расстояние editex, которое отлично работало:

new_df["EdxScore"] = new_df.apply(lambda x: editex.(x[0],x[1]), axis=1)

Я прочитал документацию здесь: https://anhaidgroup.github.io/py_stringmatching/v0.3.x/Editex.html

Однако когда я пытаюсь:

new_df["EdxScore"] = new_df.apply(lambda x: textdistance.editex.get_sim_score(x[0],x[1]), axis=1)

, я получаю сообщение об ошибке:

AttributeError: («Объект 'Editex' не имеет атрибута 'get_sim_score'», 'произошло с индексом 0')

Я не совсем уверен, что здесь не так, поэтому любая помощь будет очень благодарна!

1 Ответ

0 голосов
/ 17 июня 2020

Оказывается, я неправильно прочитал документацию, и аргументы для использования определены.

Для ясности я вставил следующие аргументы:

Все алгоритмы имеют 2 интерфейса:

Class with algorithm-specific params for customizing.
Class instance with default params for quick and simple usage.

Все алгоритмы имеют несколько общих методов:

.distance(*sequences) – calculate distance between sequences.
.similarity(*sequences) – calculate similarity for sequences.
.maximum(*sequences) – maximum possible value for distance and similarity. For any sequence: distance + similarity == maximum.
.normalized_distance(*sequences) – normalized distance between sequences. The return value is a float between 0 and 1, where 0 means equal, and 1 totally different.
.normalized_similarity(*sequences) – normalized similarity for sequences. The return value is a float between 0 and 1, where 0 means totally different, and 1 equal.

Наиболее распространенные аргументы инициализации:

qval – q-value for split sequences into q-grams. Possible values:
    1 (default) – compare sequences by chars.
    2 or more – transform sequences to q-grams.
    None – split sequences by words.
as_set – for token-based algorithms:
    True – t and ttt is equal.
    False (default) – t and ttt is different.

https://pypi.org/project/textdistance/

...