python - 如何将不同的文本分组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"
关于如何对这些进行分组的任何建议/建议?
谢谢 :)
解决方案
这是给你的伪代码。
记住原来的字符串orig
。
从字符串中删除列表中的所有短语并将结果放入new
.
如果orig
==new
你有类别 3。
否则,如果new
为空,则为类别 1。
否则,您有第 2 类。
使用new= re.sub(r'\b(' + r'|'.join(list) + r')\b', orig)
替换所有短语,将单词边界计算在内。(虽然你真的不想调用你的变量list
,因为这会影响 Python 内置类型。)
推荐阅读
- swift - 如何将通用类型 SignedNumeric 转换为 Float?
- node.js - 无法使用 React 和 Node.js 通过 Axios 和 Nodemailer 发送发布请求 - 处于开发模式
- python - XML:删除与父节点同名的子节点
- android - 为什么在 ubuntu 中运行 Android Virtual Device 如此滞后?
- c++ - 您如何允许逗号用于基于整数的输入 c++ 的用户输入?
- excel - 关闭源文件时,无法在 for 循环中重用内容
- java - before 方法中的给定方法运行两次。为第一个捕获 null 并为第二次捕获字符串参数
- javascript - 如何在 VS Code 中禁用自动换行符?
- excel - 如何对特定行进行计算?
- flutter - flutter firebase身份验证FirebaseUser问题