由于明天有活动,今天就把(四)和(五)一起给弄出来了,希望大家喜欢。
下面是分词程序中,分词的结果就是使用下面的方法得到,这个我是写在KeyWordTree类中,但是大家喜欢了。
其实也可以放在应用程序中。
/**/
/// <summary>
/// 分词,键树查找
/// </summary>
/// <param name="strText">分词内容</param>
/// <returns>分词结果</returns>
public string FindKeyWord( string strText)
... {
List<KeyWordTreeNode> tmpRoot = Root.ChildList;
StringBuilder strBuilder = new StringBuilder();
int CC = 0; //已经查到字符数 ,为了找不到的时候,判断是否退回一个字符
for (int iCount = 0; iCount < strText.Length; iCount++)
...{
int tmpIndex = FindIndex(tmpRoot, strText[iCount]);
if (tmpIndex == -1)
...{
if (CC == 0)
...{
strBuilder.Append(strText[iCount]+"|");
}
else
...{
iCount -= 1;
strBuilder.Append("|");
}
tmpRoot = Root.ChildList;
CC = 0;
}
else
...{
strBuilder.Append(strText[iCount]);
//添加ID记录
tmpRoot = tmpRoot[tmpIndex].ChildList;
CC++;
}
}
return strBuilder.ToString();
}
/// 分词,键树查找
/// </summary>
/// <param name="strText">分词内容</param>
/// <returns>分词结果</returns>
public string FindKeyWord( string strText)
... {
List<KeyWordTreeNode> tmpRoot = Root.ChildList;
StringBuilder strBuilder = new StringBuilder();
int CC = 0; //已经查到字符数 ,为了找不到的时候,判断是否退回一个字符
for (int iCount = 0; iCount < strText.Length; iCount++)
...{
int tmpIndex = FindIndex(tmpRoot, strText[iCount]);
if (tmpIndex == -1)
...{
if (CC == 0)
...{
strBuilder.Append(strText[iCount]+"|");
}
else
...{
iCount -= 1;
strBuilder.Append("|");
}
tmpRoot = Root.ChildList;
CC = 0;
}
else
...{
strBuilder.Append(strText[iCount]);
//添加ID记录
tmpRoot = tmpRoot[tmpIndex].ChildList;
CC++;
}
}
return strBuilder.ToString();
}