鍍金池/ 問答/Python/ 如何根據(jù)語義合并字典?

如何根據(jù)語義合并字典?

從 pdf 財務(wù)報表中解包出來了一些數(shù)據(jù),經(jīng)過處理,格式上仍存在一些問題。

report_list = [
    {'index': '處置固定資產(chǎn)、無形資產(chǎn)和其'}, 
    {'index': '他長期資產(chǎn)收回的現(xiàn)金凈額', 'bqje': '15,000.00 3,800.00'},
    {'index': '金'}, 
    {'index': '收到其他與籌資活動有關(guān)的現(xiàn)', 'bqje': '14,691,042.80'} 
    ]

想達(dá)到的效果是:

report_list = [
    {'index': '處置固定資產(chǎn)、無形資產(chǎn)和其他長期資產(chǎn)收回的現(xiàn)金凈額', 'bqje': '15,000.00 3,800.00'},
    {'index': '收到其他與籌資活動有關(guān)的現(xiàn)金', 'bqje': '14,691,042.80'}
    ]

上述列表中:

1、report_list[0], report_list[1] 語義上看,index 本來是一個,但被解析成了兩個。
2、report_list[2], report_list[3] 語義上看,index 本來是一個,而且順序發(fā)生了錯誤。

有沒有類似的語言包? 或者自己定義一個 key 該如何進(jìn)行處理?

回答
編輯回答
大濕胸

處理后的順序信息已經(jīng)丟失了,如果只是詞語中間截斷還可以合并,
但是如果截斷后是語義仍是完整的話,順序就不那么好處理了。

解決方法:
優(yōu)先考慮從解包的時候保留這個順序信息。
合并過程,以bqje作為項分割點,拼接新字符串(正反順序都有)
然后利用規(guī)則計算最優(yōu)的字符串。規(guī)則比如說,利用jieba分詞計算新字符串分詞后的詞個數(shù)。
正確順序的一般分詞數(shù)少于錯誤的順序的字符串的分詞數(shù)(錯誤字符串里分詞會出現(xiàn)斷裂區(qū)的單字詞)

如:
他1 長期2 資產(chǎn)3 收回4 的5 現(xiàn)金6 凈額7 處置8 固定資產(chǎn)9 、10 無形資產(chǎn)11 和12 其13
處置1 固定資產(chǎn)2 、3 無形資產(chǎn)4 和5 其他6 長期7 資產(chǎn)8 收回9 的10 現(xiàn)金11 凈額12

2018年4月7日 20:34