如何将不同的文本分组为python

时间:2018-09-04 17:47:36

标签: python pandas numpy

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

  • 第一类是仅包含单词的字符串 定义列表,仅此而已。单词可以以任何顺序排列,只要字符串仅包含该列表中的单词即可。此外,它不必包括列表中的所有单词。
  • 除了其他类别,第二类别是第一类别 可能不在列表中的单词。
  • 第三类是不是前两个的所有内容 类别

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

示例:

list = ["dog name", "dog age", "dog breed"]

要使其属于第一类,它的字符串应看起来像这样:

"dog name dog age dog breed".

"dog age dog name"

要归入 second类别,其字符串应类似于以下内容:

  "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 :(得分:0)

这是给你的伪代码。

记住原始字符串orig

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

如果orig == new,您具有类别3。

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

否则,您具有类别2。

使用new= re.sub(r'\b(' + r'|'.join(list) + r')\b', orig)替换所有短语,使单词边界进入计数。 (尽管您确实不想调用变量list,因为它会遮盖Python内置类型。)