Как использовать POS-тег для одного слова из другого столбца с помощью Pandas?
Например, у меня есть:
col1 col2
aaa1 AAa1 is a great friend
abb2 abb2 is a very good friend
Я хочу вывести:
NNP is a great friend
NN is a very good friend
Я пытаюсь:
from nltk import pos_tag
columns = ['col1', 'col2']
data = pd.read_csv('data.csv', delimiter='\t', names=columns)
data["col2"] = data.apply(lambda x: x["col1"].replace(x["col1"], pos_tag([x["col2"], x["col1"]])[1][1]), axis=1)
Но это не работает и не игнорируйте регистр букв.
Мой col1 только в нижнем регистре, в col2 у меня есть строчные и прописные слова. Как применить повторный суб-модуль?
Я хочу использовать его для каждой строки (около 4 миллионов строк)
Edit:
Если я попытаюсь использовать:
data["col2"] = data.apply(lambda x: re.sub(x["col1"], pos_tag([x["col1"].lower(), x["col1"].lower()]), x["col2"], flags=re.I), axis=1)
Это не работает. Потому что я хочу вывод с оригинальным регистром. Это моя целевая проблема -> Я хочу заменить действительно строку на NNP и NN для классификатора SVM.
Вы знаете, как это сделать?