结巴net 分词 配置文件路径,在网站中的出现问题的解决

用结巴分词net版,部署到网站上的时候,配置文件的地址为相对路径的时候会出现问题,绝对路径就没有问题。

 

原因是结巴源码中,取路径是取的应用程序的目录。如果是winform程序当然没有问题,在网站就不行了。

 

要分别修改      Segmenter和Analyser中的文件 ConfigManager.cs

 

我用的方法是加一个配置项 apptype  通过配置项是否有值来判断是否网站

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

  

这样就不会报错了

 

posted @   过错  阅读(1837)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示