[英]Search methods and string matching in python
我有一項任務是在由4列和187000行組成的表中搜索一組特定術語(大約138000個術語)。 列標題是id
, title
, scientific_title
和synonyms
,其中每列可能包含多個術語。
我應該得到一個csv表,其中id已找到一個術語,術語本身。 什么是最好和最快的方法?
在我的腳本中,我嘗試通過按順序迭代術語中的不同單詞並將每個單詞與表中每列的每一行進行比較來創建短語。
它看起來像這樣:
title_prepared = string_preparation(title)
sentence_array = title_prepared.split(" ")
length = len(sentence_array)
for i in range(length):
for place_length in range(len(sentence_array)):
last_element = place_length + 1
phrase = ' '.join(sentence_array[0:last_element])
if phrase in literalhash:
final_dict.setdefault(id,[])
if not phrase in final_dict[id]:
final_dict[trial_id].append(phrase)
我該怎么做?
澄清問題:我們正在運行小型科學項目,我們需要使用特定關鍵字提取所有文本部分。 我們使用了http://www.julesberman.info/coded.htm上發布的編碼字典和python腳本! 但似乎有些東西不能正常工作。
例如,該腳本不識別字符串“在糖尿病或腎損傷患者中葯物洗脫支架植入后評估Sarpogrelate對缺血性心臟病的功效的多中心隨機試驗”中的關鍵詞“心臟病”。
感謝您的理解! 我們是一名生物學家和醫生,對python有一點了解!
如果您需要更多代碼,我會在線發布。
您鏈接到的網站上的代碼區分大小寫 - 只有當tumorabs.txt和neocl.xml中的術語完全相同時才會起作用。 如果您無法更改數據,請更改:
后:
for line in text:
加:
line = line.lower()
(這是縮進的四個空格)
並改變:
phrase = ' '.join(sentence_array[0:last_element])
至:
phrase = ' '.join(sentence_array[0:last_element]).lower()
當我更改tumorabs.txt和neocl.xml中某些數據的大小時,AFAICT與網站中未經修改的代碼一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.