【发布时间】:2019-04-16 07:36:25
【问题描述】:
我正在做作业,我读过类似的主题,在这里发现了一个非常有趣的主题:Find string between two substrings
我的目标是使用 python 搜索我在文本文件中搜索的 3 个特定模式,我需要在未分类的文本文件中执行搜索,我需要:
1) 从关键字“更多信息”开始搜索(在此之前绕过信息)
2) 根据以下条件对文档进行分类: A1) 字符串:'big home' 和他的价格 A2) 字符串 : 'big home' 未找到价格 B1) 字符串:'small home' 和他的价格 B2) 字符串 : 'small home' 未找到价格 C1) 字符串:'big home' AND 'small home' 及其价格 C2) 字符串:'big home' AND 'small home' 他们的价格缺失 D) 没有找到字符串(大房子或小房子)
对于 A、B、C,找到价格并打印 = 'Big home price 50USD',如果没有找到价格,请提及。
我正在使用 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(如果没有价格提及,则获取带有价格的字符串。
高度赞赏任何支持!
编辑:
也许在这里使用 NLTK 很有趣,有什么想法吗?
【问题讨论】:
-
分享示例文本文件
-
嗨,谢谢连接,当然,这里是例子,1.txt(仅限大房子价格):pastebin.com/YHfWwYG7 List created from 1.txt(我使用列表,因为我过滤了文本文件并去除空白和其他噪音):pastebin.com/ziyGnBgZ 2.txt(小型住宅和大型住宅的价格)pastebin.com/hLD9RJM1 以及从 2.txt(小型住宅和大型住宅的价格)创建的 lsit:@ 987654326@
-
编辑:从 2.txt 创建的列表:pastebin.com/fMaBYjiJ
-
编辑:重要信息:有时有关“大房子”或“小房子”的信息位于文件顶部或中间,而不是示例文件中显示的文本“项目介绍” ....这可能会使整个事情复杂化...
-
有一个可以使用的代码示例(在列表中查找多个元素)... : find = lambda searchList, elem: [[i for i, x in enumerate(searchList) if x == e] for e in elem] 示例:find([1,4,1,4,6,5,5,5,4,2,3],[1,3,5]) 将返回:[ [0, 2], [10], [5, 6, 7]] 也许我的项目有解决方案?
标签: python string search text nltk