结巴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> |
这样就不会报错了
作者:过错
出处:http://www.cnblogs.com/wang2650/
关于作者:net开发做的久而已。十余年时光虚度!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题,可以邮件:wang2650@163.com
联系我,非常感谢。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)