这与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'ForbesAsia', u'200', u'Best', u'Under', u'500Billion', u'2011']
有了新的数量和位置tokenIDs也许像(避免索引越界异常):
numberTokenIDs = {(5,): 2011.0, (1,): 200.0, (4,): 500000000000.00}
locationTokenIDs = {(0,): u'Forbes Asia'}
基本上我想经过标记的新的,减小集,并且能够通过通过新的令牌集的打算,并与eith更换正确tokenID
"LOCATION_SLOT NUMBER_SLOT Best Under NUMBER_SLOT NUMBER_SLOT"
:最终创造出所谓的新句子er LOCATION_SLOT
或NUMBER_SLOT
。如果我这样做是与当前设定的数量和位置标记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)
老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']
注意,如果有多个元组时,串联应该连接元组中的所有值(也是元组也可以包含> 2个元素,例如The United States of America
)。
如何返回新的数量和位置tokenIDs匹配这些新的令牌?例如'numberTokenIDs = {(5,):2011.0,(1,):200.0,(4,):500000000000.00}' –
我已更新答案 – ploutch