C 中文分詞演算法 實現從文章中提取關鍵字演算法

2021-05-23 18:56:44 字數 3652 閱讀 1874

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.collections;

using system.io;

using system.text.regularexpressions;

namespace tks.framework.common

;private static readonly hashtable _stopwords = null;

#endregion

//#region 資料快取函式

///

/// 資料快取函式

///

/// 索引鍵

/// 快取的資料

private static void setcache(string key, object val)

//private static void setcache(string key, object val)

/////

/// 讀取快取

///

///

///

private static object getcache(string key)

#endregion

//#region 讀取文字

private static sortedlist readtxtfile(string filepath)

else

//objreader.close();

objreader.dispose();}}

catch (exception)

setcache("dict", arrtext);

//return (string)arrtext.toarray(typeof(string));

}return (sortedlist)getcache("dict");

}#endregion

//#region 寫文字

//public static void writetxtfile(string filepath, string message)

////        else

//        

//        writer.writeline(message);

//        writer.close();

//        writer.dispose();

//    }

//    catch (exception)

//}#endregion

//#region 載入詞典

private static sortedlist loaddict

}#endregion

//#region 判斷某字串是否在指定字元陣列中

private static bool strisinarray(string strarray, string val)

#endregion

//#region 正則檢測

private static bool ismatch(string str, string reg)

#endregion

//#region 首先格式化字串(粗分)

private static string formatstr(string val)

continue;

}else if (ismatch(strlist, "[^0-9a-za-z@\\.%#:/\\&_-]"))//排除這些字元

else

else

else

//end if no.4

}//end if no.3

}//end if no.2

#endregion

}//if no.1

else

else //中文

}//end if no.1

}//exit for

//return result;

}#endregion

//#region 分詞

///

/// 分詞

///

///

private static arraylist stringspliter(string key)//}

//}//else if (ismatch(key[i], @"^([0-9]+(\.[0-9]+)*)|([a-za-z]+)$"))//純數字、純英文

//else if (!ismatch(key[i], @"^(\.*)$"))//不全是小數點

//else //中文、英文、數字的混合

////}}

}catch (exception)

//return list;

//return (string)list.toarray(typeof(string));

}#endregion

//#region 得到分詞結果

///

/// 得到分詞結果

///

///

///

public static arraylist dosplit(string key)

//        }

//        //

//    }

//}//去掉沒用的詞

for (int i = 0; i < keylist.count; i++)

}return keylist;

}///

/// 把乙個集合按重複次數排序 

///

///

///

///

public static dictionarysortbyduplicatecount(arraylist inputlist)

dictionarysortbyvaluedict = getsortbyvaluedict(distinctdict);

return sortbyvaluedict;

}///

/// 把乙個字典俺value的順序排序 

///

///

///

///

///

public static dictionarygetsortbyvaluedict(idictionarydistinctdict)

}return sortbyvaluedict;

}///

/// 得到分詞關鍵字,以逗號隔開

///

///

///

public static string getkeyword(string key)

return _value;

}#endregion

#region 移除停止詞

public static object addelement(idictionary collection, object key, object newvalue)

public static bool isstopword(string str)

#endregion

static wordspliter()}}

}

Python實現從url中提取網域名稱的幾種方法

這篇文章主要介紹了python實現從url中提取網域名稱的幾種方法,本文給出了3種方法實現在url中提取網域名稱的需求,需要的朋友可以參考下。從url中找到網域名稱,首先想到的是用正則,然後尋找相應的類庫。用正則解析有很多不完備的地方,url中有網域名稱,網域名稱字尾一直在不斷增加等。通過googl...

C 中文分詞演算法 ChineseAnalyzer

1.首先需要引用 2個dll庫檔案 lucene.net.dll lucene.china.dll using lucene.net using lucene.net.analysis using lucene.china 2.還有乙個data資料夾需要放在c program files x86 c...

C 中文分詞演算法 ChineseAnalyzer

1.首先需要引用 2個dll庫檔案 lucene.net.dll lucene.china.dll using lucene.net using lucene.net.analysis using lucene.china 2.還有乙個data資料夾需要放在c program files x86 c...