[英]Find a String starting from a particular string in text files and classify
我正在做作業,我已經讀過類似的帖子,在這里發現一個非常有趣的: 在兩個子串之間找到字符串
我的目標是使用python搜索3個特定模式我在文本文件中搜索,我需要在未分類的文本文件中執行搜索,我需要:
1)從關鍵字'more info'開始搜索(之前繞過信息)
2)分類文件基於:A1)字符串:'大房子'和他的價格A2)字符串:'大房子'沒有找到價格B1)字符串:'小家'和他的價格B2)字符串:'小家'沒有價格發現C1)字符串:'大家'和'小家'和他們的價格C2)字符串:'大家'和'小家'他們的價格缺失D)沒有發現任何字符串(大家或小家)
對於A,B,C,找到價格和打印='大房價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很有意思,任何想法?
我會做類似的事情:
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)
我認為這適用於您發布的文件,如果其他格式不同,則需要進行調整...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.