从文本文件中的特定字符串开始查找字符串并分类

2024-04-19 22:13:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做作业,我也读过类似的文章,发现这里有一个很有趣的:Find string between two substrings

我的目标是使用python搜索我在文本文件中搜索的3种特定模式,我需要在未分类的文本文件中执行搜索,我需要:

1)从关键字“更多信息”开始搜索(在此之前跳过信息)

2)文件分类依据: A1)字符串:“大房子”和他的价格 A2)字符串:“大房子”未找到价格 B1)字符串:“小房子”和他的价格 B2)string:'small home'未找到价格 C1)字符串:“大房子”和“小房子”及其价格 C2)字符串:“大房子”和“小房子”缺少它们的价格 D) 找不到字符串(大家庭或小家庭)

对于A,B,C,找到价格和打印='大房子价格50美元',如果没有找到价格提到。你知道吗

我正在用python进行文本研究,它返回找到的关键字的分类法,我需要根据上述模式A、B、C和D对文档(文本文件)进行分类

data_train['classi'] = data_train['text'].apply(lambda x: len([x for x in x if x.startswith('classi')]))
data_train[['text','classi']].head()

输出如下:

text    classi
0   [big home, forrest, suburb, more info,          0
1   [town, pool, more info,                         0
2   [small home,more info,  forrest, suburb         1
3   [big home, more info,  forrest, price 50        1
4   [big home, forrest,  more info,  city           0

我希望: 1) 从关键字“更多信息”开始搜索 2) 对我在A、B、C、D中搜索的文本文档进行分类(如果没有价格,则获取包含价格的字符串)。你知道吗

非常感谢您的支持!你知道吗

编辑:


Tags: 字符串info信息homedatamore分类train
1条回答
网友
1楼 · 发布于 2024-04-19 22:13:36

我会做类似的事情:

from pathlib import Path
for file in Path("my_folder").glob("*.txt"):
    with file.open('r') as f:
        more_info_flag = False
        for line in f:
            if not more_info_flag:
                if "more info" in line:
                    more_info_flag = True
                else:
                    continue
            if "big_home" in line:
                if "price is" in line:
                    price = int(line.split("price is")[1].split(" ")[0])
                else:
                    price = None
                do_something(price)

我认为这将适用于您发布的文件,如果其他格式不同,将需要调整。。。你知道吗

相关问题 更多 >