有四個文件,a.txt
,b.txt
,c.txt
,d.txt
。python中的字符串匹配
每個文件只有一列數據,其中包含商店/商場/餐館等的名稱。實際上,它們只是名稱。
我需要一個程序,可以將a.txt
中的名稱與其他三個文件(b.txt
,c.txt
,d.txt
)中的名稱進行匹配。通過匹配,我們的意思是程序應該能夠將a.txt
中的一行標記爲匹配,前提是它包含三個其他文件中任何一個文件中可用的名稱。這些比賽需要智能化,即如果某個文件有餐廳,而另一個文件則不應該匹配。所以我們需要提出一些啓發式的方法來做一個很好的匹配。
我想要完美的匹配例如如果a.txt
具有以下
Ivan Restaurant - Bukit Timah Road, Singapore
Ivan Restaurant - Bukit Timah Road, 12345 Singapore
Ivan Restaurant - Bukit Timah Road, 12345
Ivan Restaurant - 12345, Singapore
Ivan Restaurant Bukit Timah Road, Singapore
Ivan Restaurant Bukit Timah Road, 12345 Singapore
Ivan Restaurant Bukit Timah Road, 12345
Ivan Restaurant 12345, Singapore
Ivan Restaurant (Bukit Timah Road, Singapore)
Ivan Restaurant (Bukit Timah Road, 12345 Singapore)
Ivan Restaurant (Bukit Timah Road, 12345)
Ivan Restaurant (12345, Singapore)
或「伊萬餐廳」 和b.txt
或c.txt
或d.txt
任何這樣的變化有任何以下
Ivan
Ivan restaurant
然後, 只有完整伊萬餐廳之一應該匹配。但是,如果b.txt
或c.txt
或d.txt
中沒有「Ivan餐廳」,但只有Ivan存在,那麼您會從a.txt
中刪除像餐廳這樣的常用詞,然後嘗試匹配。
我希望你明白。類似的商店,建築物,商場等。這就是我的啓發式意思。
如果我理解你的描述正確你可以建立一個'設置()'用b.txt'的'所有的話,'c.txt' ,和'd.txt',然後遍歷'a.txt'的單詞並檢查它是否屬於這個集合的一部分。如果您需要了解有關該單詞的更多信息,則可以使用「地圖」,該地圖從單詞映射到相關信息,例如,無論這個詞是在「b.txt」還是來自哪一行。 – 2011-12-18 08:02:53
你能給我這個代碼嗎? – Anoop 2011-12-18 08:21:34
@ user1077645 - 此網站用於解決您編寫的代碼時遇到的問題。如果您希望有人爲您從頭開始編寫解決方案,請嘗試[Elance](https://www.elance.com/)或[vWorker](http://www.vworker.com/)或其中一種其他此類服務。 – Blair 2011-12-18 09:20:00