未 培,莊 彥 (安徽工商職業(yè)學(xué)院電子信息系,安徽 合肥230041)
路況播報系統(tǒng)中路況信息來源于多種渠道,如熱線電話、駐點(diǎn)記者、微博、網(wǎng)頁留言等,通過上述渠道收集的信息存在內(nèi)容重復(fù)的現(xiàn)象,需要對收集的路況信息進(jìn)行甄別。由于不同信息采編人員對同一路況信息的表述不盡相同,這給信息的比對帶來了困難[1-2]。為解決上述問題,筆者交通路況播報系統(tǒng)中重復(fù)信息過濾問題進(jìn)行了研究。
對于路況播報系統(tǒng)中的路況信息,基本上均可描述為“什么時間,什么路段,發(fā)生了什么路況”這樣的格式語句。顯然,時間、地點(diǎn)和路況信息可以提取出來作為算法特征值,如圖1所示。
1)時間值的選取 考慮到1h內(nèi)在同一地點(diǎn)發(fā)生2次相同路況信息的概率非常小,基本可以不計,因此,可以選取整數(shù)點(diǎn)作為時間取值來構(gòu)成時間特征值。為了減少時間特征值數(shù)量,提高匹配效率,將時間特征值設(shè)定為7∶00~22∶00。
2)路況信息的選取 交通路況信息所描述的路況信息包括道路擁堵、車輛相撞、追尾、道路施工等,因此,將上述路況信息設(shè)置為路況特征值。
3)地點(diǎn)的選取 由于城市中許多街巷道路對駕車出行人員影響不大,因而城市主要路段的路況信息作為地點(diǎn)特征值。
為了提高路況信息的比對效率,按照每一種特征值的數(shù)量由少到多的順序,將上述3種特征值分別設(shè)置為一級、二級和三級。首先匹配一級特征值,如果一級特征值不相同,則說明2條路況信息不同,即非重復(fù)內(nèi)容,這樣就不需進(jìn)行二級和三級特征值的比對;如果一級特征值比較結(jié)果相同,則需進(jìn)行二級特征值的比對,若2條路況信息不同,可以結(jié)束比對,若相同,則需再進(jìn)行三級特征值的比對,這樣可最終確定2條路況信息的異同。
圖1 特征值的設(shè)定和分級圖
1)設(shè)定參數(shù) 等待錄入的路況信息文本為NT (一個文本,需要進(jìn)行重復(fù)內(nèi)容比對的信息文本);系統(tǒng)中已錄入的路況信息文本為OT(多個文本,重復(fù)內(nèi)容比對的參照文本);路況特征值PR (多個特征值);時間特征值為PT (多個特征值);地點(diǎn)特征值為PL(多個特征值)
2)確定步驟 偽代碼確定步驟如下[3]:①將NT與PR中的路況信息進(jìn)行匹配,匹配出某一PRi;②將步驟①匹配出來的PRi與OT進(jìn)行比對,如果找到一個或多個OTj與之相匹配則進(jìn)行步驟③,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;③將NT與PT中的時間信息進(jìn)行匹配,匹配出某一PTk;④將PTk與OTl進(jìn)行比對,如果比對成功則進(jìn)行步驟⑤,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;⑤將NT與PL中的地點(diǎn)信息進(jìn)行匹配,匹配出一個或多個PLm(信息中的路名可能有多個);⑥PLm與OTl進(jìn)行比對,如果比對成功 (如有多個路名,需全部匹配),找到一個OTn,則進(jìn)行步驟⑦的操作,否則,轉(zhuǎn)到步驟⑧繼續(xù)執(zhí)行;⑦全部匹配成功,為重復(fù)信息,舍棄該信息。⑧匹配不成功,非重復(fù)信息,信息錄入成功。
基于分級特征值信息摘要過濾算法流程圖如圖2所示。
實現(xiàn)代碼如下:
private void GEIFA ( string matchingString)
……
if (Pan Duan (eigenvalue1, eigenvalue2,
eigenvalue3))
{
//用PR值和list_total進(jìn)行比對 (PR值唯一)
list_1=list_total.Where(x=>x.Contains
(eigenvalue1 [ 0])).To List ( );
if(list_1.Count>=1)
{
//用PT值和list_1進(jìn)行比對 (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 基于分級特征值信息摘要過濾算法流程圖
}
//此條信息匹配PL信息全部成功
if(result==true)list_3.Add (item_string);
}
if(list_3.Count>=1)
{
MessageBox.Show (“此條待播報信息又重復(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);
}
}
}
交通路況播報系統(tǒng)中重復(fù)信息過濾界面如圖3所示。
該算法結(jié)合路況播報系統(tǒng)的特點(diǎn),由等待錄入系統(tǒng)的路況信息中提取出重要的多個特征值信息,然后通過特征值與已存儲在系統(tǒng)中的信息進(jìn)行比對,查找出重復(fù)信息并丟棄到棄用列表中,如果特征值沒有全部吻合,則說明等待信息不是重復(fù)信息,可以錄用。實際應(yīng)用表明,該算法能夠很好地解決路況播報系統(tǒng)中出現(xiàn)的內(nèi)容相同但表述不同的信息過濾問題,因而具有可行性。
圖3 交通路況播報系統(tǒng)中重復(fù)信息過濾界面
[1]徐鳳梅,魏瑋 .交通廣播:現(xiàn)狀與對策 [J].新聞前哨,2009,21(3):20-22.
[2]吳以四 .路況實時網(wǎng)上播 [J].信息方略,2008 (5):12-13.
[3]余飛 .基于模式匹配算法的考生報到結(jié)果預(yù)測 [J].巢湖學(xué)院學(xué)報,2012,10(5):45-47.