结巴net 分词 配置文件路径,在网站中的出现问题的解决
用结巴分词net版,部署到网站上的时候,配置文件的地址为相对路径的时候会出现问题,绝对路径就没有问题。
原因是结巴源码中,取路径是取的应用程序的目录。如果是winform程序当然没有问题,在网站就不行了。
要分别修改 Segmenter和Analyser中的文件 ConfigManager.cs
我用的方法是加一个配置项 apptype 通过配置项是否有值来判断是否网站
using System.Configuration;
namespace JiebaNet.Segmenter
{
public class ConfigManager
{
private static string serverpath = string.IsNullOrEmpty(ConfigurationManager.AppSettings["apptype"]) ? "" : System.Web.HttpContext.Current.Server.MapPath("/");
public static string MainDictFile
{
get { return serverpath +( ConfigurationManager.AppSettings["MainDictFile"] ?? @"Resources\dict.txt"); }
}
public static string ProbTransFile
{
get { return serverpath +( ConfigurationManager.AppSettings["ProbTransFile"] ?? @"Resources\prob_trans.json"); }
}
public static string ProbEmitFile
{
get { return serverpath +( ConfigurationManager.AppSettings["ProbEmitFile"] ?? @"Resources\prob_emit.json"); }
}
public static string PosProbStartFile
{
get { return serverpath +( ConfigurationManager.AppSettings["PosProbStartFile"] ?? @"Resources\pos_prob_start.json"); }
}
public static string PosProbTransFile
{
get { return serverpath + (ConfigurationManager.AppSettings["PosProbTransFile"] ?? serverpath + @"Resources\pos_prob_trans.json"); }
}
public static string PosProbEmitFile
{
get { return serverpath + (ConfigurationManager.AppSettings["PosProbEmitFile"] ?? @"Resources\pos_prob_emit.json"); }
}
public static string CharStateTabFile
{
get { return serverpath + (ConfigurationManager.AppSettings["CharStateTabFile"] ?? @"Resources\char_state_tab.json"); }
}
}
}
webconfig
<appSettings>
<add key="webPages:Enabled" value="false" />
<add key="MainDictFile" value="Contents\Resources\dict.txt" />
<add key="ProbTransFile" value="Contents\Resources\prob_trans.json" />
<add key="ProbEmitFile" value="Contents\Resources\prob_emit.json" />
<add key="PosProbStartFile" value="Contents\Resources\pos_prob_start.json" />
<add key="PosProbTransFile" value="Contents\Resources\pos_prob_trans.json" />
<add key="PosProbEmitFile" value="Contents\Resources\pos_prob_emit.json" />
<add key="CharStateTabFile" value="Contents\Resources\char_state_tab.json" />
<add key="StopWordsFile" value="Resources\stopwords.txt" />
<add key="IdfFile" value="Contents\Resources\idf.txt" />
<add key="apptype" value="web" />
</appSettings>
这样就不会报错了
作者:过错
出处:http://www.cnblogs.com/wang2650/
关于作者:net开发做的久而已。十余年时光虚度!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:wang2650@163.com
联系我,非常感谢。

浙公网安备 33010602011771号