У меня есть столбец в моем DataFrame, и теперь мое требование:
- Повторение слов не должно присутствовать в каждом ряду.
- Предположим, у меня есть собака и собаки в моемдолжна присутствовать только строка string
- Чувствительно к регистру: даже если у меня есть собака и собаки, она также должна удалять собак и возвращать только собаке
- особых случаев, таких как собака и собака, затем удалять собак и результатдолжен содержать только собаку.
Пожалуйста, найдите приведенный ниже пример кода, который я использовал.
1. Попытка обуздать и лемматизировать данные, но не точные 2. Даже использовать spacy и лемматизироватьданные затем также тот же результат
вывод выглядит немного лучше, но при использовании лемматизации другие слова действуют
m='dog ran out of Dogs and Dog ran out of cat and dog''s adidas'
try:
def stem(tokens):
x=[]
stemmer = SnowballStemmer(language='english')
for token in tokens:
x.append(stemmer.stem(token))
return x
except:
print('problem at stemming')
s12=' '.join(stem(m.split()))
#####Then written code for duplicate removal
try:
def unique_list(list1):
marker = set()
result = [not marker.add(x.casefold()) and x for x in list1 if x.casefold() not in marker]
return result
except:
print("Problem in removing duplicates")
s5=' '.join(unique_list(s12.split()))
Фактическая строка: «у собаки закончились собаки, а у собаки закончились кошка и собака»'s adidas' Фактический результат: «собака исчерпала собаку, а собака закончилась, а кошка и собака adida»
Таким образом, в фактическом результате это также лемматизирует adidas, которое является последним словом в strinг.оно становится «adida» вместо adidas
Ожидаемый результат: «собака исчерпала собаку и собака выбежала из кошки и собаки adidas»
Нужна ваша помощь или помощь в решении этой проблемы.