未 培,庄 彦 (安徽工商职业学院电子信息系,安徽 合肥230041)
路况播报系统中路况信息来源于多种渠道,如热线电话、驻点记者、微博、网页留言等,通过上述渠道收集的信息存在内容重复的现象,需要对收集的路况信息进行甄别。由于不同信息采编人员对同一路况信息的表述不尽相同,这给信息的比对带来了困难[1-2]。为解决上述问题,笔者交通路况播报系统中重复信息过滤问题进行了研究。
对于路况播报系统中的路况信息,基本上均可描述为“什么时间,什么路段,发生了什么路况”这样的格式语句。显然,时间、地点和路况信息可以提取出来作为算法特征值,如图1所示。
1)时间值的选取 考虑到1h内在同一地点发生2次相同路况信息的概率非常小,基本可以不计,因此,可以选取整数点作为时间取值来构成时间特征值。为了减少时间特征值数量,提高匹配效率,将时间特征值设定为7∶00~22∶00。
2)路况信息的选取 交通路况信息所描述的路况信息包括道路拥堵、车辆相撞、追尾、道路施工等,因此,将上述路况信息设置为路况特征值。
3)地点的选取 由于城市中许多街巷道路对驾车出行人员影响不大,因而城市主要路段的路况信息作为地点特征值。
为了提高路况信息的比对效率,按照每一种特征值的数量由少到多的顺序,将上述3种特征值分别设置为一级、二级和三级。首先匹配一级特征值,如果一级特征值不相同,则说明2条路况信息不同,即非重复内容,这样就不需进行二级和三级特征值的比对;如果一级特征值比较结果相同,则需进行二级特征值的比对,若2条路况信息不同,可以结束比对,若相同,则需再进行三级特征值的比对,这样可最终确定2条路况信息的异同。
图1 特征值的设定和分级图
1)设定参数 等待录入的路况信息文本为NT (一个文本,需要进行重复内容比对的信息文本);系统中已录入的路况信息文本为OT(多个文本,重复内容比对的参照文本);路况特征值PR (多个特征值);时间特征值为PT (多个特征值);地点特征值为PL(多个特征值)
2)确定步骤 伪代码确定步骤如下[3]:①将NT与PR中的路况信息进行匹配,匹配出某一PRi;②将步骤①匹配出来的PRi与OT进行比对,如果找到一个或多个OTj与之相匹配则进行步骤③,否则,转到步骤⑧继续执行;③将NT与PT中的时间信息进行匹配,匹配出某一PTk;④将PTk与OTl进行比对,如果比对成功则进行步骤⑤,否则,转到步骤⑧继续执行;⑤将NT与PL中的地点信息进行匹配,匹配出一个或多个PLm(信息中的路名可能有多个);⑥PLm与OTl进行比对,如果比对成功 (如有多个路名,需全部匹配),找到一个OTn,则进行步骤⑦的操作,否则,转到步骤⑧继续执行;⑦全部匹配成功,为重复信息,舍弃该信息。⑧匹配不成功,非重复信息,信息录入成功。
基于分级特征值信息摘要过滤算法流程图如图2所示。
实现代码如下:
private void GEIFA ( string matchingString)
……
if (Pan Duan (eigenvalue1, eigenvalue2,
eigenvalue3))
{
//用PR值和list_total进行比对 (PR值唯一)
list_1=list_total.Where(x=>x.Contains
(eigenvalue1 [ 0])).To List ( );
if(list_1.Count>=1)
{
//用PT值和list_1进行比对 (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 (“此条待播报信息又重复,无法添加!”);
}
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);
}
}
}
交通路况播报系统中重复信息过滤界面如图3所示。
该算法结合路况播报系统的特点,由等待录入系统的路况信息中提取出重要的多个特征值信息,然后通过特征值与已存储在系统中的信息进行比对,查找出重复信息并丢弃到弃用列表中,如果特征值没有全部吻合,则说明等待信息不是重复信息,可以录用。实际应用表明,该算法能够很好地解决路况播报系统中出现的内容相同但表述不同的信息过滤问题,因而具有可行性。
图3 交通路况播报系统中重复信息过滤界面
[1]徐凤梅,魏玮 .交通广播:现状与对策 [J].新闻前哨,2009,21(3):20-22.
[2]吴以四 .路况实时网上播 [J].信息方略,2008 (5):12-13.
[3]余飞 .基于模式匹配算法的考生报到结果预测 [J].巢湖学院学报,2012,10(5):45-47.