栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python表格搜索匹配txt文本的字符串并标注分类

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python表格搜索匹配txt文本的字符串并标注分类

今天看到一道数学建模竞赛题,题目给了1284种食物的成分(附件1),和部分已知类别食物word(附件2),里面有三个种类的部分食物,要求根据已知食物分类来预测未知分类的食物寒热属性.

要做分类,需要用机器学习模型来训练已知类别数据,肯定是要先在附件1找到已知分类的食物,并且标注它的类别。

百度了好久,没找到相应的方法和代码。(可能是我搜索的关键词不对-_-)

题目的一小问

附件1部分数据样式附件二数据样式

于是我自己想到了下面的方法,可能有点笨。。。

1、先把word的3个食物分类分别复制在3个txt文件中

2、读取附件1中的数据,转化为DataFrame格式,在末尾添加一列用来存放类别,取食物名称列

import re
import pandas as pd
df3['catef'] = ''#添加列,分类
mingcheng = df3['名  称'].astype(str)#提取名称所在列

3、分别读取txt文件

f0 = open(r'性平.txt', encoding='utf-8')
f1 = open(r'性凉寒.txt', encoding='utf-8')
f2 = open(r'性温热.txt', encoding='utf-8')

4、将txt文件的食物读取为字符串,我用的是正则表达式

5、读取的字符串可能有空的,需要去除,不然在名称上搜索会发现所有的食物都符合条件

6、在附件1中找到含有txt文件中食物中的索引,并在源文件标注相应的食物类别,4-6实现如下。

#自定义函数,根据附件2分类标注数据
def TagCategory(datastr,f,tap):#datastr传入附件1所有名称数据,f为读取的txt文件,tap你想标注的内容,数字,字符都可
    for line in f:
        a = re.split('。|、|;|(|)|\n| ', line)#分割字符串保存到a
        a = [x.strip() for x in a if x.strip() != '']#去除空字符串
        for ss in a:
            index0 = datastr.str.find(ss)#找到则返回所要找字符串在指定字符串位置,没有则返回-1
            ind = index0[index0.values != -1].index#不为-1的即表示有
            df3['catef'][ind] = tap#标注

7.直接调用函数即可,标注成功

TagCategory(mingcheng,f0,0)#性平标为0
TagCategory(mingcheng,f1,1)#性凉寒标为1
TagCategory(mingcheng,f2,2)#性温热标为2
print(df3.head())#查看前5行

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号