Сходство текста панд между списком и столбцом pd.DataFrame - PullRequest
0 голосов
/ 25 октября 2018

У меня есть pd.DataFrame (named df_sim), как указано ниже (это только образец)

Редактировать

Type                                     Sent
icro soft student advantage      why should i connect to vpn
Microsoft Student Advantage      why should i connect to vpn
the V  P  N                      why should i connect to vpn
the V PN                         why should i connect to vpn
my laundry bucks                 why should i connect to vpn
CSI                              why should i connect to vpn

Моя цель - найти наиболее похожие 'Наберите 'из предоставленного' Отправлено '.Я выполняю косинусное сходство и необходимые коды следующие.

df_sim['Type'] = df_sim['Type'].apply(lambda x : re.sub('[^A-Za-z0-9]',' ',x))
vect = TfIdfVectorizer()
vect.fit(df['Type'] +" " +df['Sent'])
A = vect.transform(df['Type'])
B = vect.transform(df['Sent'])
sim = paired_cosine_distances(A,B)  #from from sklearn.metrics.pairwise 
                                    import paired_cosine_distances
y = df_sim.iloc[np.argmin(sim)]['Type']

Я ожидал, что np.argmin(sim) будет 2 или 3, и, таким образом, y будет 'the V PN' or 'the V P N'.Вместо этого я получаю np.argmin (sim) равным 5, а y - CSI. С этим у меня есть два вопроса:

  1. Должен ли я вообще использовать косинус-подобие?может ли регулярное выражение, как материал будет делать необходимое?

  2. Почему я не получаю правильную фразу в столбце «Тип».Во многих случаях вышеупомянутая техника работает, но здесь это не так.Почему?

...