首页 > 解决方案 > 如何将不同的文本分组python

问题描述

我有一个data frame包含字符串的。我想将字符串分为 3 类:

我首先通过删除所有标点符号并将文本转换为小写来清理数据。

例子:

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"

关于如何对这些进行分组的任何建议/建议?

谢谢 :)

标签: pythonpandasnumpy

解决方案


这是给你的伪代码。

记住原来的字符串orig

从字符串中删除列表中的所有短语并将结果放入new.

如果orig==new你有类别 3。

否则,如果new为空,则为类别 1。

否则,您有第 2 类。

使用new= re.sub(r'\b(' + r'|'.join(list) + r')\b', orig)替换所有短语,将单词边界计算在内。(虽然你真的不想调用你的变量list,因为这会影响 Python 内置类型。)


推荐阅读