0
元組值對的字典中刪除的項目這是一個previous question非常相關的,但我意識到,我的目標是要複雜得多:需要從兩個列表,並在同一時間
我有一句話:"Forbes Asia 200 Best Under 500 Billion 2011"
我有這樣的標記:
oldTokens = [u'Forbes', u'Asia', u'200', u'Best', u'Under', u'500', u'Billion', u'2011']
和以往進行的解析器已經想通了,那裏應該是位置或時隙數的指標:
numberTokenIDs = {(7,): 2011.0, (2,): 200.0, (5,6): 500000000000.00}
locationTokenIDs = {(0, 1): u'Forbes Asia'}
令牌ID對應於其中存在的位置或數量的令牌的索引,目的是獲得一組新的樣令牌:
newTokens = [u'Asia', u'200', u'Best', u'Under', u'500', u'2011']
用新的數量和位置tokenIDs或許象(爲了避免指數越界例外):
numberTokenIDs = {(5,): 2011.0, (1,): 200.0, (4,): 500000000000.00}
locationTokenIDs = {(0,): u'Forbes Asia'}
基本上我想經過標記的新的,減小集,並能夠最終建立一個所謂的新句子:
"LOCATION_SLOT NUMBER_SLOT Best Under NUMBER_SLOT NUMBER_SLOT"
通過經歷新的令牌集並用「LOCATION_SLOT」或「NUMBER_SLOT」替換正確的tokenID。如果我這樣做是與當前設定的數量和位置標記ID的,我會得到:
"LOCATION_SLOT LOCATION_SLOT NUMBER_SLOT Best Under NUMBER_SLOT NUMBER_SLOT NUMBER_SLOT".
我將如何做到這一點?
另一個例子是:
Location token IDs are: (0, 1)
Number token IDs are: (3, 4)
Old sampleTokens [u'United', u'Kingdom', u'USD', u'1.240', u'billion']
我想要的都刪除標記,改變位置和數量令牌的ID,以便能夠更換一句話:
sampleTokens[numberTokenID] = "NUMBER_SLOT"
sampleTokens[locationTokenID] = "LOCATION_SLOT"
使得更換令牌[u'LOCATION_SLOT', u'USD', u'NUMBER_SLOT']
嗨瓦迪姆,我無法適應這個創建一個像這樣的句子:'福布斯亞洲200最佳500億以下2011',所以我連接位置和值,但我也不希望這樣做,如果有不需要例如如果位置令牌ID和數字令牌ID對的長度不超過1。 –
更簡單的方法是爲程序添加索引列表以知道哪些地方的ID將被連接。然後只需添加額外的檢查:如果索引在列表中 - 進行連接。 (2,):200.0,(5,6):500000000000.00'到[[...](2,):(200.0,0), 6):(500000000000.00,1)'。 –
瞭解。我應該就這個問題提出一個單獨的問題,或者你可以把它作爲你答案的第二個版本嗎? –