Как сгруппировать разные тексты в группы python - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть data frame, в котором есть строки. Я хочу сгруппировать строки в 3 категории:

  • первая категория - это строки, в которых есть только слова в определенный список и ничего кроме этого. Слова могут быть в любом порядке, если строка содержит только слова из этого списка. Кроме того, он не должен включать все слова из списка.
  • вторая категория является первой категорией в дополнение к другим слова, которых нет в списке.
  • третья категория - это все, что не первые два категории

Я начал с очистки данных, удалив все знаки препинания и преобразовав текст в нижний регистр.

Пример: * ** 1022 тысячу двадцать одна * list = ["dog name", "dog age", "dog breed"] Для того, чтобы что-то было в первой категории , строка должна выглядеть точно так:

"dog name dog age dog breed".

или

"dog age dog name"

Если что-то будет во второй категории , его строка будет выглядеть примерно так:

  "dog name suzie dog age 4 dog breed pug" 

или

"dog name suzie dog breed pug"

Для чего-то, что находится в третьей категории , его строка будет выглядеть примерно так:

"my dogs name is suzie and she is a pug who is 4 years old"

Любые предложения / советы по их группировке?

Спасибо :)

1 Ответ

0 голосов
/ 05 сентября 2018

Вот вам псевдокод.

Запомните оригинальную строку orig.

Удалите все фразы из списка из строки и поместите результат в new.

Если orig == new, у вас есть категория 3.

Иначе, если new пусто, у вас есть категория 1.

Иначе, у вас есть категория 2.

Использование new= re.sub(r'\b(' + r'|'.join(list) + r')\b', orig) заменяет все фразы, перенося границы слов в счет. (Хотя вы действительно не хотите вызывать вашу переменную list, потому что это затеняет встроенный тип Python.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...