欢迎进入.NET社区论坛,与300万技术人员互动交流 >>进入
一.关于中文分词
中文没有英文的分割符,所以分词就很重要了,
例如:我是中国人
分为:我/是/中国/人
我/是/中国人
通常的分发会选择其中的一种分发进行分词,但是我发现这样分容易产生歧义,到底是“中国”还是“中国人”为一组,所以我想把他们都分出来,这样做就更简单了,我能想到的最好办法就是substring();了。
三.方法
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;//
using System.IO;//
namespace GetWords
{
public class GetWordsClass
{
private string mdbPath;//定义txt词典文件位置
//定义构造函数
public GetWordsClass(string mdbWordsFilePath)
{
mdbPath = mdbWordsFilePath;
}
/// <summary>
/// 根据字符串截取存在的词语算法(分词算法)
/// </summary>
/// <param>需要操作的字符串</param>
/// <returns>在中文中存在的词语</returns>
public ArrayList getWords(string strTxt)
{
//截取所有字符串
ArrayList al = new ArrayList();
int subLength = 4;//截取长度
for (int i = 0; i <= strTxt.Length - 1; i++)//因为取字最短2位,则末位不能取值
{
for (int j = 2; j <= subLength; j++)
{
try
{
//如果截取不超界则正常截取
al.Add(s