未 培,莊 彥 (安徽工商職業(yè)學(xué)院電子信息系,安徽 合肥230041)
路況播報(bào)系統(tǒng)中路況信息來源于多種渠道,如熱線電話、駐點(diǎn)記者、微博、網(wǎng)頁留言等,通過上述渠道收集的信息存在內(nèi)容重復(fù)的現(xiàn)象,需要對(duì)收集的路況信息進(jìn)行甄別。由于不同信息采編人員對(duì)同一路況信息的表述不盡相同,這給信息的比對(duì)帶來了困難[1-2]。為解決上述問題,筆者交通路況播報(bào)系統(tǒng)中重復(fù)信息過濾問題進(jìn)行了研究。
對(duì)于路況播報(bào)系統(tǒng)中的路況信息,基本上均可描述為“什么時(shí)間,什么路段,發(fā)生了什么路況”這樣的格式語句。顯然,時(shí)間、地點(diǎn)和路況信息可以提取出來作為算法特征值,如圖1所示。
1)時(shí)間值的選取 考慮到1h內(nèi)在同一地點(diǎn)發(fā)生2次相同路況信息的概率非常小,基本可以不計(jì),因此,可以選取整數(shù)點(diǎn)作為時(shí)間取值來構(gòu)成時(shí)間特征值。為了減少時(shí)間特征值數(shù)量,提高匹配效率,將時(shí)間特征值設(shè)定為7∶00~22∶00。
2)路況信息的選取 交通路況信息所描述的路況信息包括道路擁堵、車輛相撞、追尾、道路施工等,因此,將上述路況信息設(shè)置為路況特征值。
3)地點(diǎn)的選取 由于城市中許多街巷道路對(duì)駕車出行人員影響不大,因而城市主要路段的路況信息作為地點(diǎn)特征值。
為了提高路況信息的比對(duì)效率,按照每一種特征值的數(shù)量由少到多的順序,將上述3種特征值分別設(shè)置為一級(jí)、二級(jí)和三級(jí)。首先匹配一級(jí)特征值,如果一級(jí)特征值不相同,則說明2條路況信息不同,即非重復(fù)內(nèi)容,這樣就不需進(jìn)行二級(jí)和三級(jí)特征值的比對(duì);如果一級(jí)特征值比較結(jié)果相同,則需進(jìn)行二級(jí)特征值的比對(duì),若2條路況信息不同,可以結(jié)束比對(duì),若相同,則需再進(jìn)行三級(jí)特征值的比對(duì),這樣可最終確定2條路況信息的異同。

圖1 特征值的設(shè)定和分級(jí)圖
1)設(shè)定參數(shù) 等待錄入的路況信息文本為NT (一個(gè)文本,需要進(jìn)行重復(fù)內(nèi)容比對(duì)的信息文本);系統(tǒng)中已錄入的路況信息文本為OT(多個(gè)文本,重復(fù)內(nèi)容比對(duì)的參照文本);路況特征值PR (多個(gè)特征值);時(shí)間特征值為PT (多個(gè)特征值);地點(diǎn)特征值為PL(多個(gè)特征值)
2)確定步驟 偽代碼確定步驟如下[3]:①將NT與PR中的路況信息進(jìn)行匹配,匹配出某一PRi;②將步驟①匹配出來的PRi與OT進(jìn)行比對(duì),如果找到一個(gè)或多個(gè)OTj與之相匹配則進(jìn)行步驟③,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;③將NT與PT中的時(shí)間信息進(jìn)行匹配,匹配出某一PTk;④將PTk與OTl進(jìn)行比對(duì),如果比對(duì)成功則進(jìn)行步驟⑤,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;⑤將NT與PL中的地點(diǎn)信息進(jìn)行匹配,匹配出一個(gè)或多個(gè)PLm(信息中的路名可能有多個(gè));⑥PLm與OTl進(jìn)行比對(duì),如果比對(duì)成功 (如有多個(gè)路名,需全部匹配),找到一個(gè)OTn,則進(jìn)行步驟⑦的操作,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;⑦全部匹配成功,為重復(fù)信息,舍棄該信息。⑧匹配不成功,非重復(fù)信息,信息錄入成功。
基于分級(jí)特征值信息摘要過濾算法流程圖如圖2所示。
實(shí)現(xiàn)代碼如下:
private void GEIFA ( string matchingString)
……
if (Pan Duan (eigenvalue1, eigenvalue2,
eigenvalue3))
{
//用PR值和list_total進(jìn)行比對(duì) (PR值唯一)
list_1=list_total.Where(x=>x.Contains
(eigenvalue1 [ 0])).To List ( );
if(list_1.Count>=1)
{
//用PT值和list_1進(jìn)行比對(duì) (PT值唯一)
list_2 = list_1.Where ( x = >
x.Contains ( eigenvalue2 [ 0])).To List();
if(list_2.Count>=1)
{
foreach(string item_string in list_2)
{
bool result=true;
foreach(string eig3 in
eigenvalue3)
{
if(!item _ string.Contains
(eig3))result=false;

圖2 基于分級(jí)特征值信息摘要過濾算法流程圖
}
//此條信息匹配PL信息全部成功
if(result==true)list_3.Add (item_string);
}
if(list_3.Count>=1)
{
MessageBox.Show (“此條待播報(bào)信息又重復(fù),無法添加!”);
}
else
{
//保存此條信息 list_total.Add (this.textBox1.Text.Trim ());
File.Append All Text(“OT_Info.txt”,
this.textBox1.Text,Encoding.Default);
list_total.RemoveAll(x=> { if(string.IsNullOr Empty ( x))return true;return false;});
fillingrtb ( list_total);
}
}
else
{
//保存此條信息
list_total.Add ( this.textBox1.Text.Trim ( ));
File.Append All Text(“OT_Info.txt”,this.textBox1.Text,Encoding.Default);
list_total.RemoveAll(x=> {if(string.Is NullOr Empty ( x))return true;return false;});fillingrtb ( list_total);
}
}
else
{
//保存此條信息list _ total.Add (this.textBox1.Text.Trim ()); File.Append All Text ( “OT _Info.txt”,
this.textBox1.Text,Encoding.Default);
list_total.Remove All(x=> {if ( string.Is NullOr Empty ( x))returntrue;return false;});
fillingrtb ( list_total);
}
}
}
交通路況播報(bào)系統(tǒng)中重復(fù)信息過濾界面如圖3所示。
該算法結(jié)合路況播報(bào)系統(tǒng)的特點(diǎn),由等待錄入系統(tǒng)的路況信息中提取出重要的多個(gè)特征值信息,然后通過特征值與已存儲(chǔ)在系統(tǒng)中的信息進(jìn)行比對(duì),查找出重復(fù)信息并丟棄到棄用列表中,如果特征值沒有全部吻合,則說明等待信息不是重復(fù)信息,可以錄用。實(shí)際應(yīng)用表明,該算法能夠很好地解決路況播報(bào)系統(tǒng)中出現(xiàn)的內(nèi)容相同但表述不同的信息過濾問題,因而具有可行性。

圖3 交通路況播報(bào)系統(tǒng)中重復(fù)信息過濾界面
[1]徐鳳梅,魏瑋 .交通廣播:現(xiàn)狀與對(duì)策 [J].新聞前哨,2009,21(3):20-22.
[2]吳以四 .路況實(shí)時(shí)網(wǎng)上播 [J].信息方略,2008 (5):12-13.
[3]余飛 .基于模式匹配算法的考生報(bào)到結(jié)果預(yù)測(cè) [J].巢湖學(xué)院學(xué)報(bào),2012,10(5):45-47.