DNN论坛DotNetNuke交流讨论区DotNetNuke 技术文章 [原创]在DNN中集成ICTCLAS中文分词功能

1  /  1  页   1 跳转 查看:1315

[原创]在DNN中集成ICTCLAS中文分词功能

[原创]在DNN中集成ICTCLAS中文分词功能

DNN中默认的分词功能是根据空格来分词,不支持中文和其他语言的分词功能。具体解释可以参看:
DNN搜索引擎研究 http://www.cnblogs.com/Athos/archive/2007/01/19/624979.html
我这里不多说,因为时间关系,我通过简单的修改DNN中的Provider.Search.DataStore工程中的Split处为ICTCLAS的分词功能来实现中文分词。
我采用的是NICTCLAS,具体见下:
http://blog.csdn.net/web718/archive/2008/04/15/2292930.aspx
我在NICTCLAS上添加了以下一个方法和属性,以便实现灵活地加载数据字典。
具体可以参看代码。
因为时间关系,还没做更好的一些改进,主要觉得以下几方面需要改进:
1.  词库词条再多增加点
2. 实现查询结果关键词高亮显示
3. 对于查询结果的排序优化。目前感觉DNN中的查询结果只是根据出现次数以及位置2个参数进行查询结果的排序,感觉不是很好。另外不能实现基于不同类型设置优先级别。
csdn的博客不支持添加附件,所以如有有需要的留邮件在我评论当中。
有以下文件:
SearchDataStore.rar  源代码
nictclas_microdream_alter.rar  修改后的nictclas
DNN_NICTCLAS.rar 编译好的,可以直接用于DNN网站


http://blog.csdn.net/hydream/archive/2008/07/11/2637726.aspx

附件附件:

您所在的用户组无法下载或查看附件

附件附件:

您所在的用户组无法下载或查看附件

最后编辑MicroDream 最后编辑于 2008-07-11 10:40:40
 

回复:[原创]在DNN中集成ICTCLAS中文分词功能

不好意思,因为附件限制,没有办法把DNN_NICTCLAS.rar 编译好的,可以直接用于DNN网站
这个文件传上来。需要的直接在DNN山海经中问我要。
 

回复:[原创]在DNN中集成ICTCLAS中文分词功能

DNN中文搜索一直是DNN的软肋,微梦这个贡献很有历史意义啊!

                                                有人要DNN_NICTCLAS.rar,我给传一下。
附件: DNN_NICTCLAS.rar (2008-8-19 13:06:43, 2174.04 K)
最后编辑m2land 最后编辑于 2008-08-19 13:08:16
我的博客,专注DNN:http://m2land.cnblogs.com
QQ群(DNN山海经):56782274
 

回复: [原创]在DNN中集成ICTCLAS中文分词功能

我依照指引安装后出现如下状况:


Server Error in '/' Application. 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1) Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[COMException (0x800736b1): 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)][FileLoadException: 未能加载文件或程序集“NICTCLAS, Version=1.0.3112.32049, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)]  System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0  System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +211  System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +141  System.Reflection.Assembly.Load(String assemblyString) +25  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +32[ConfigurationErrorsException: 未能加载文件或程序集“NICTCLAS, Version=1.0.3112.32049, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)]  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +596  System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +3479081  System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +46  System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +177  System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +180  System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +347  System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +125  System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +378[HttpException (0x80004005): 未能加载文件或程序集“NICTCLAS, Version=1.0.3112.32049, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)]  System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +57  System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +612  System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +456[HttpException (0x80004005): 未能加载文件或程序集“NICTCLAS, Version=1.0.3112.32049, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)]  System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +3426887  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88  System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +149

Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

不知错在何处,请那位大虾指导啊!!!!
 

回复 4F louissukk 的帖子

下载我回帖中的DNN_NICTCLAS.rar,解压后:

1、把App_Data中的Data词库文件夹拷贝到DNN网站中的App_Data目录中

2、把bin目录中的动态链接库文件拷贝到DNN网站中Bin目录中,替换原先的文件。

3、清空数据库中的SearchItem表

4、打开DNN调度中的DotNetNuke.Services.Search.SearchEngineScheduler, DOTNETNUKE项,点Update,这样会使得DNN马上调度重建索引,
否则需要等到下次调度时间才能看到效果。
我的博客,专注DNN:http://m2land.cnblogs.com
QQ群(DNN山海经):56782274
 

回复 5F m2land 的帖子

我试过重新将文件加入,但是还是不行,我不知这个DNN_NICTCLAS适用于那个版本的DNN,我现在是在4.8.4上测试的,不知可用否?
最后编辑louissukk 最后编辑于 2008-11-11 21:46:01
 

回复 6F louissukk 的帖子

经过我在DNN 4.8.3 上测试有同样的问题。
我的博客,专注DNN:http://m2land.cnblogs.com
QQ群(DNN山海经):56782274
 
1  /  1  页   1 跳转

版权所有 DNN论坛  | 京ICP备08010726号 | 联系我们 |

Powered by Discuz!NT 2.1.202    Copyright © 2001-2009 Comsenz Inc.
返顶部