Git Product home page Git Product logo

jieba.net's Issues

自定义词不起作用?

        var segmenter = new JiebaSegmenter();
        segmenter.LoadUserDict(JIEBA_STOCK_DIC_FN);
        var segments = segmenter.Cut("国办:促进仿制药研发减按15%的税率征收企业所得税 景峰医药封涨停");

其中 "仿制药" "景峰医药" 我在上面的JIEBA_STOCK_DIC_FN文件中已经定义了,但上面分词 还是把"仿制药"" 分成了 "仿制"和"药" ,把"景峰医药" 分成了"景峰","医药" 两个词, 请问要如何处理?

  另外例子中的精确模式和新词识别 看不出有啥区别,是笔误吗?

“JiebaNet.Segmenter.JiebaSegmenter”的类型初始值设定项引发异常。

想请问一下 我把Resources文件夹复制到了我的项目目录下,然后在web配置文件里添加了绝对路径,但是还是报这个错误

image

设置路径 :
<appSettings> <add key="JiebaConfigFileDir" value="E:\Projects\TFS\Leading\Main\PdaSite\JiebaConfig"/> </appSettings>

请问是我哪里设置的有问题吗?

对类似“艾尔肯·吐尼亚孜”切词,即使添加了自定义词典,也无法把这个人名切出来

我把这个名字“艾尔肯·吐尼亚孜”加到了词典中并且用segmenter.LoadUserDict() 加入了词典,对这句话
艾尔肯·吐尼亚孜**阿克苏人
切出来的结果是
艾尔肯/·/吐/尼亚/孜/**/阿克苏/人

但是如果名字里没有·,比如将”一个不在字典中的名字“放入字典,就可以正确切出来,请问这是什么原因,我该如何应对名字中存在·的情况?

Error in ASP.NET

在ASP.NET 环境下,创建以下两个提取关键词的CLASS,总是报错。
web.config 文件中已增加以下设定

JiebaNet.Analyser.TfidfExtractor tf = new TfidfExtractor();
JiebaNet.Analyser.TextRankExtractor tr = new TextRankExtractor();

“System.MissingMethodException”类型的异常在 MRAnalysis.dll 中发生,但未在用户代码中进行处理

其他信息: 找不到方法:“Void JiebaNet.Segmenter.JiebaSegmenter..ctor(Boolean)”。

请问应如何解决?

我想咨询一下 中文分词有关问题

我用的是 jieba.NET 版本,我现在遇到一个问题
比如 我想搜索的关键字为:糖尿病药 、糖尿病药品
如果使用自带词库
糖尿病药分词结果: 糖尿/糖尿病/药
糖尿病药品分词结果:糖尿/糖尿病/药品

因为现在我做的是药品类电商搜索,这时候会遇到一个问题,如果把药、药品这两个字分出来,这样匹配的结果会相当不准确(因为在生成索引的时候,药品在多个域中含有)

还有一个问题 想咨询一下 就是在结巴分词词库中 哪个词频 我还是没搞清楚具体作用(十分抱歉我是新手)

我同时想要词性标注和自定义词典有没办法做到的?

看到词性标注和自定义词典里用的不是同一个实例,不知道是因为.net版没有实现还是原版结巴就没有的?
var posSeg = new PosSegmenter(); var s = "一团硕大无朋的高能离子云,在遥远而神秘的太空中迅疾地飘移"; var tokens = posSeg.Cut(s); Console.WriteLine(string.Join(" ", tokens.Select(token => string.Format("{0}/{1}", token.Word, token.Flag))));

JiebaSegmenter.AddWord(word, freq=0, tag=null)

textrank allowpos 的功能

您好。
我試驗了一下textrank allowpos的功能發現沒有任何差異
進去source code 裡面看了一下
發現好沒有實作這個功能
請教一下是否是不是我誤判

感謝

关于Jieba.net引用MVC框架时候出错的问题

我是一个新手,正在研究MVC系统框架,前几天刚刚把jieba项目启动来,今天加入MVC框架后,发现无法正常启动,系统能够正常编译,我在index视图加入如下代码
JiebaSegmenter jiebaSegmenter = new JiebaSegmenter();
jiebaSegmenter.Cut("我就试试");
能够正常编译,启动后报错信息如下:
System.IO.FileLoadException
HResult=0x80131040
Message=未能加载文件或程序集“Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
Source=JiebaNet.Segmenter
StackTrace:
在 JiebaNet.Segmenter.FinalSeg.Viterbi.LoadModel() 在 D:\jieba.NET-master\src\Segmenter\FinalSeg\Viterbi.cs 中: 第 86 行
在 JiebaNet.Segmenter.FinalSeg.Viterbi..ctor() 在 D:\jieba.NET-master\src\Segmenter\FinalSeg\Viterbi.cs 中: 第 28 行
在 JiebaNet.Segmenter.FinalSeg.Viterbi.<>c.<.cctor>b__14_0() 在 D:\jieba.NET-master\src\Segmenter\FinalSeg\Viterbi.cs 中: 第 15 行
在 System.Lazy`1.CreateValue()

请版主帮忙看看,指点一下,谢谢!

词典路径的进一步改进

我最近在实现一个类库,其中调用了Jieba。但是如果我想在其他工程中调用的时候,就需要在每一个工程的config文件中都设置jieba的目录。
我建议给ConfigFileBaseDir添加一个set,这样在项目中就可以动态的指定根目录了。我可以把jieba的资源文件放到整个类库的资源文件中,传一个变量就可以加载。
例如这样子:

        private static string _configFileBaseDir;
        public static string ConfigFileBaseDir
        {
            get
            {
                if (string.IsNullOrEmpty(_configFileBaseDir))
                {
                    _configFileBaseDir = ConfigurationManager.AppSettings["JiebaConfigFileDir"] ?? "Resources";
                }
                return _configFileBaseDir;
            }
            set { _configFileBaseDir = value; }
        }

分词功能.Cut()出错

当调用 loadUser.Cut("简历名称JAVA后端"),即:“简历名称JAVA后端”无空格的情况下,报错“loadUser.Cut("简历名称JAVA后端")”引发了类型“System.NullReferenceException”的异常;
当调用 “loadUser.Cut("简历名称JAVA 后端"),即:“简历名称JAVA[空格]后端”有空格的情况下,不报错。
说明:在vs2017下。

已经解决:使用loadUser.Cut("stringparam",true)

衷心建议:说明能否写得更明确点,太多的坑啊,大神!

newstonsoft需要8以上版本,10以上可以不可以?
resource文件夹要拷贝到程序集所在目录,什么是程序集所在目录,是带resource目录一起拷贝,还是只要拷贝里面的文件?
framework要4.5,4.6.1可以不可以?
位置不正确,会报错,会报什么错?能否写出来,让我也知道我碰到的是不是文件位置问题?

别笑我低级,我也做了不短时间的开发了。理论我都懂,可是当我碰到问题2天都解决不了的时候,所有懂的东西都变得不靠谱了!!!

安装失败

newtonsoft.json.8.0.2这个依赖包现在装不上

关于去除停用词后进行词频统计

有幸能使用到大佬做的jieba分词。
在使用的过程遇到一个问题,就是载入停用词后,使用TfidfExtractor中的ExtractTags(txt,10)对txt进行分词,获得10个string数据是已经按词频排序好的吗?能具体获得使用停用词后分出来的各个词的词频吗?因为我和直接用segment.cut方法获得的结果用counter获得词频,然后获取Mostcommon(100)的结果进行对比,发现有几个词的先后顺序略有差异。
image
image
第一张图是用extracttags获得的结果(10个),第二张图是直接cut后统计的结果,停用词为jieba.net中附带的stopwords_zh_hit.txt文件。

Please specify fileaccess.read when load dict

hi,我在Azure部署的时候一直遇到这样的问题

ASP.NET is not authorized to access the requested resource “E:\sitesroot\0\Resources\dict.txt”

后来检查源码,发现问题是WordDictionary.cs第42行

var stream = new FileStream(MainDict, FileMode.Open);

我把这里修改成了如下,解决了问题。

var stream = new FileStream(MainDict, FileMode.Open, FileAccess.Read);

如果不添加FileAccess.Read,在本地运行时不会有问题;如果服务器部署IIS时,会需要修改IIS运行权限;部署到azure等云上时,修改权限非常的麻烦,建议方便的话可以修改一下。

System.TypeInitializationException

想請問一下,我在執行上出現了這個錯誤,可以提供一些訊息給我嗎?

執行到這一行的時候

var segments = segmenter.Cut("資訊工程學系");

出現錯誤

類型 'System.TypeInitializationException' 的未處理例外狀況發生於 JiebaNet.Segmenter.dll
其他資訊: 'JiebaNet.Segmenter.JiebaSegmenter' 的類型初始設定式發生例外狀況。

完整 code

var segmenter = new JiebaSegmenter();
var segments = segmenter.Cut("資訊工程學系");
Console.WriteLine(string.Join(" ", segments));

自定义词典下的posSeg.Cut("北京市海淀区",true);结果不正确

JiebaNet.Segmenter.WordDictionary.Instance.DeleteWord("北京");
JiebaNet.Segmenter.WordDictionary.Instance.DeleteWord("北京市");
JiebaNet.Segmenter.WordDictionary.Instance.DeleteWord("海淀区");

        JiebaNet.Segmenter.WordDictionary.Instance.AddWord("北京", 6000, "city");
        JiebaNet.Segmenter.WordDictionary.Instance.AddWord("北京市", 6000, "city");
        JiebaNet.Segmenter.WordDictionary.Instance.AddWord("海淀区", 6000, "town");
        //seg.LoadUserDict(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "userdict.txt");
        JiebaNet.Segmenter.WordDictionary.Instance.ContainsWord("北京");
        JiebaNet.Segmenter.WordDictionary.Instance.ContainsWord("北京市");
        var tokens = posSeg.Cut("北京市海淀区",true);

按道理说cut之后得到的结果应该是
北京市 city
海淀区 town
但实际得到的结果是
北京市 ns
海淀区 ns

源码生成报错

我想在.net 4.0项目中使用,无奈不行,下载源码下来编译也通不过。

_20180525115913

vs2013、4.5下报错,已经调试2天,无结果!跪求!

“System.TypeInitializationException”类型的异常在 ydcms.dll 中发生,但未在用户代码中进行处理

其他信息: “JiebaNet.Segmenter.JiebaSegmenter”的类型初始值设定项引发异常。

出错运行的语句为:
JiebaNet.Segmenter.JiebaSegmenter segmenter = new JiebaNet.Segmenter.JiebaSegmenter();

newstonsoft.json已经升级到10以上版本,无果。

关于复制到各种位置都尝试了。包括debug等等,也试了去掉文件夹直接复制一堆文件。
Resources下文件都尝试修改成 utf-8编码。

大神,帮忙啊!

載入自訂義辭典?

請問要如何正確載入自訂義辭典?
我使用
segmenter.LoadUserDict("user_dict.txt");
segmenter.LoadUserDict(".//jieba.NET//ExtraDicts//user_dict.txt");
這兩種都不行

另請教有方法可以判斷詞是因為自訂義辭典而被切割出來的嗎?
感謝

搜索引擎模式無法使用

var cc = segmenter.CutForSearch(this.txtTest.Text); foreach (var r in cc) { Console.WriteLine(r); }
原始
小明碩士畢業於中國科學院計算所,後在日本京都大學深造
輸出為
小明 碩士 畢業 於 中國 科學院 計算 所 , 後 在 日本 京都 大學 深造

跟我看到的範例結果都不一樣
找不到是哪裡出錯?

包含空格的自定义词分词时会被分割问题

如题描述,已经看过测试项目中的代码如下。 什么时候能修复下 :)

            var seg = new JiebaSegmenter();
            seg.AddWord("Steve Jobs");
            seg.AddWord("Mac OS X");
            s = "Steve Jobs重新定义了手机";
            segments = seg.Cut(s);
            Console.WriteLine("Cut: {0}", string.Join("/ ", segments));
            segments = seg.Cut(s, cutAll: true);
            Console.WriteLine("Cut All: {0}", string.Join("/ ", segments));

            s = "我们所熟悉的一个版本是Mac OS X 10.11 EI Capitan,在2015年推出。";

            segments = seg.Cut(s);
            Console.WriteLine("Cut: {0}", string.Join("/ ", segments));
            segments = seg.Cut(s, cutAll: true);
            Console.WriteLine("Cut All: {0}", string.Join("/ ", segments));

Steve Jobs依然会被分开。

请问关键词提取如何限定仅提取某些词

您好,dict自定义后 可以根据限定的词语进行分词。
请问提取关键词时,如何仅提取某些词呢?比如 我只需要提取出 MP3,MP4,音箱 此类词语。
SetIdfPath 是否仅影响排序?尝试多次得不到想要的结果。
技术有限,源码看的不是很明白。感谢!!!

Tokenize:返回词语在原文的起止位置有错误

anders 你好!Tokenize:返回词语在原文的起止位置(StartIndex,EndIndex)是不是有较大的问题,
例如 var s = "永和服装饰品 有限公司",就是在中文串中插入几个空格,那么分词得到的Token,"有限","公司"的StartIndex,EndIndex就不是原文的起止位置了。
再比如,英文 var s = "Issues help repositories track bugs, enhancements, and ideas. You can submit new bugs, requests, or join the discussion."
Tokenize以后,除Issues这个词,其他的token的StartIndex,EndIndex全都不是原文的起止位置了。

在与Lucene.net集成时,设置Term的Offset使用了 offsetAtt.SetOffset(token.StartIndex, token.EndIndex)
那么再使用Lucene.net Highlight做高亮显示时,使用的Term的Offset作为位置值,就是错误的,会出现高亮了其他词,而不是要搜索的这个Term。

所以,在JiebaSegmenter.cs这个程序文件中,好像不应该使用下面这样的代码(原py版本好像也是这样的),
var width = w.Length;
result.Add(new Token(w, start, start + width));
start += width;

但具体怎么做,我琢磨了源代码很长时间,也还没有解决方法,看看 Anders有没有好的方法。谢谢

TfidfExtractor和TextRankExtractor创建报错。

所有东西都是按照你的配置来的。应该是没配置错,其他地方都好使。
但是在创建TextRankExtractor和TfidfExtractor的时候就报错,提示:未将对象引用设置到对象的实例。
版本是0.38.3,NuGet上面下载的。
求帮助啊~~~
var extractor = new TextRankExtractor();
就只这一句。

问题

var segmenter = new JiebaSegmenter();
不行好像要写成jiebanet.segmenter.jiebasegmenter

无法识别混合有符号、字母、汉字的词?

在处理医学病历,“该患者窦性心律不齐,心电图示短P-R间期”,已经向自定义词典中添加了“窦性心律不齐”和“短P-R间期”,遗憾的是“短P-R间期”无法正确识别,被拆成了“短/P/-/R/区间”。

TfidfExtractor.SetStopWords似乎沒有作用

您好,首先很感謝您提供的程式
我使用TfidfExtractor去截取關鍵詞時
原程式可以將stopwords.txt裡面的關鍵詞剃除掉
例如新增 "穿搭"關鍵詞,則不會出現這兩個字
但我想要動態新增關鍵詞
於是使用了 SetStopWords
例如
Dim aa = New TfidfExtractor
aa.SetStopWords("穿搭")
Dim bb = aa.ExtractTags(articleContent, FormatNumber(50))

但似乎沒有作用
程式還是會把"穿搭"兩個字當作關鍵詞列出來
這能否修改一下呢?
謝謝您

Nuget下载安装后,Tfidf使用报错

  1. PM> Install-Package jieba.NET
  2. 复制package下resource目录到项目目录。
    3.JiebaNet.Analyser.TfidfExtractor extract = new JiebaNet.Analyser.TfidfExtractor();
    步骤三报错
    ““System.NullReferenceException”类型的异常在 JiebaNet.Analyser.dll 中发生,但未在用户代码中进行处理
    其他信息: 未将对象引用设置到对象的实例。”

环境为asp.net 4.5。 步骤二的dic目录已经确认正常。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.