外国无码一级免费_欧美色色色狼综合网站_第一黄色视频综合在线_欧美另类潮喷在线观看

利用大數(shù)據(jù)分析快速識別圍標(biāo)串標(biāo)-天勤動態(tài)-湖南天勤財務(wù)咨詢有限公司-湖南天勤會計師事務(wù)所_天勤咨詢集團(tuán)
全國服務(wù)熱線 0731-84391512
當(dāng)前位置:首頁>>天勤動態(tài)

利用大數(shù)據(jù)分析快速識別圍標(biāo)串標(biāo)

時間:2019-09-12 09:08:55

《招標(biāo)投標(biāo)法實施條例》第四十條 有下列情形之一的,視為投標(biāo)人相互串通投標(biāo):……(四)不同投標(biāo)人的投標(biāo)文件異常一致或者投標(biāo)報價呈規(guī)律性差異……在審計實務(wù)中,通過檢查各家投標(biāo)文件的技術(shù)標(biāo)中的文字是否存在大段重復(fù),特別是異常一致現(xiàn)象是檢測圍標(biāo)串標(biāo)的一個重要方法。但是,采用傳統(tǒng)的人工篩選比較費時費力,且效果受限于檢測人員能力和水平。
K-gram算法是一種用于文本分析的大數(shù)據(jù)分析方法,基于此方法,可以對投標(biāo)人提供的電子文件進(jìn)行對比,發(fā)現(xiàn)各投標(biāo)文件中的重復(fù)文本。

 

K-gram算法介紹

通過下面的例子對K-gram算法做一個簡單的介紹。

如下兩句話,假定連續(xù)8個字重復(fù)即判定存在重復(fù)(為了便于說明所做的假設(shè),在實際工作中可以根據(jù)實際情況選擇假定連續(xù)多少個字相同即判定存在重復(fù)。)
句一:探索利用大數(shù)據(jù)識別圍標(biāo)串標(biāo)
句二:大數(shù)據(jù)識別圍標(biāo)串標(biāo)的方法需要認(rèn)真研究
上面兩句話中,“大數(shù)據(jù)識別圍標(biāo)串標(biāo)”連續(xù)9個字重復(fù)。
K-gram算法的實現(xiàn)方法如下:
1、將句子按照每8個字滑移提取字符串,即k=8。
句一被轉(zhuǎn)化為6個字符串集合{“探索利用大數(shù)據(jù)識”,“索利用大數(shù)據(jù)識別” ,“利用大數(shù)據(jù)識別圍”, “用大數(shù)據(jù)識別圍標(biāo)”,“大數(shù)據(jù)識別圍標(biāo)串”, “大數(shù)據(jù)識別圍標(biāo)串”}。
句二被轉(zhuǎn)化為11個字符串集合{“大數(shù)據(jù)識別圍標(biāo)串”,“數(shù)據(jù)識別圍標(biāo)串標(biāo)” ,“據(jù)識別圍標(biāo)串標(biāo)的” ,“識別圍標(biāo)串標(biāo)的方” ,“別圍標(biāo)串標(biāo)的方法” ,“圍標(biāo)串標(biāo)的方法需” ,“標(biāo)串標(biāo)的方法需要” ,“串標(biāo)的方法需要認(rèn)” ,“標(biāo)的方法需要認(rèn)真” ,“的方法需要認(rèn)真研”,“方法需要認(rèn)真研究”  }。
2、比較兩個字符串集合,存在2個重復(fù)元素{“大數(shù)據(jù)識別圍標(biāo)串”,“數(shù)據(jù)識別圍標(biāo)串標(biāo)”} ,判定以上兩句話存在連續(xù)8個字以上的重復(fù)。

 

具體實現(xiàn)過程

假定在技術(shù)標(biāo)中存在連續(xù)100個字重復(fù),即判定其投標(biāo)文件存在圍標(biāo)串標(biāo)嫌疑,利用Python編程實現(xiàn)其算法。

代碼如下:

k=100   #設(shè)定連續(xù)重復(fù)多少字存在圍標(biāo)串標(biāo)嫌疑

#獲取甲公司技術(shù)標(biāo)字符串?dāng)?shù)據(jù)集合

with open(r"d:¥甲公司技術(shù)標(biāo).txt",'r',encoding='utf-8') as f:

         text=f.read()

         f.close()

n = len(list(text))

a=set()

if n < k:

  print("文件太小,無法切分")

else:

   for i in range(n-k+1):

       a.add(text[i:i+k-1])

#獲取乙公司技術(shù)標(biāo)字符串?dāng)?shù)據(jù)集合

with'宋體'; font-size:12pt; font-weight:normal; text-decoration:none">with open(r"d:¥乙公司技術(shù)標(biāo).txt",'r',encoding='utf-8') as f:

  &n;        text=f.read()

         f.close()

n = len(list(text))

b=set()

if n < k:

  print("文件太小,無法切分")

else:

   for i in range(n-k+1):

       b.add(text[i:i+k-1])

#查詢兩個公司投標(biāo)文件存在重復(fù)的地方及重復(fù)情況

ab=a&b

print(ab)

print(len(ab))

來源:審計工作。