Git Product home page Git Product logo

ansj_seg's People

Contributors

a822631129 avatar alanscut avatar ansjsun avatar caramelbiscuit avatar cgcgbcbc avatar chenjinyuan87 avatar chongwf avatar d4ksn avatar elloray avatar flash0729 avatar hepochen avatar hinshe avatar jdk8 avatar jimichan avatar krisjin avatar leiguorui avatar liang-kun avatar orangelpai avatar randing89 avatar rockstar2046 avatar sealday avatar shi-yuan avatar solitudesword avatar starsy avatar tesseract2048 avatar william-yeh avatar xyuu avatar yx-will avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansj_seg's Issues

library/userLibrary/userLibrary.dic 这个文件对分词来说很重要吗?

我目前在一个 web application 中使用ansj jar, 只用分词的功能,但是把ansj_seg jar加到lib后, 这个userLibrary.dic的路径很难调, 所以我就 patch 了源码,把 userLibrary 和 systemLibrary 一起加载. 我的问题是: 这个userLibrary.dic 文件有三十多万条词汇,对分词很重要吗? 

mac上报 '编码 EUC_CN 的不可映射字符错误'

mac系统默认编码是utf8的, 但是mac上的java默认编码是gbk.

直接运行时:

javac -classpath ./ans_seg-20130401.jar   Process2.java

会报错: "警告:编码 EUC_CN 的不可映射字符", "未结束的字符字面值"等.

如果这样运行:

javac -classpath ./ans_seg-20130401.jar -encoding gbk  Process2.java

会报错: "警告:编码 gbk 的不可映射字符", "找不到符号"等.

这样运行时:

javac -classpath ./ans_seg-20130401.jar -encoding utf8  Process2.java

会报错: "编码 utf8 的不可映射字符"

所以求助下, jar包里是哪种中文编码, 怎样能正确运行, 谢谢.

词性全是null

用的是最新的20130424.jar.

new ToAnalysis(new StringReader("Ansj中文分词是一个真正的ict的实现.并且加入了自己的一些数据结构和算法的分词.实现了高效率和高准确率的完美结合!"));

得到的结果是: [ansj/null, 中文/null, 分词/null, 是/null, 一个/null, 真正/null, 的/null, ict/null, 的/null, 实现/null, ./null, 并且/null, 加入/null, 了/null, 自己/null, 的/null, 一些/null, 数据结构/n, 和/null, 算法/null, 的/null, 分词/null, ./null, 实现/null, 了/null, 高效率/n, 和/null, 高/null, 准确率/null, 的/null, 完美/null, 结合/null, !/null]

同时:还有一系列的 null 打印出来
null
null
null
null
null
null
null
null
null
null
null
null
null
null

需要找出贬义和褒义的词句

你好,孙健, 谢谢你的帮助!

我这里有一个项目,需要找处一段文字中的贬义和褒义的词段 ,比如 “价格合理”, “漂亮”, “速度慢” 等等。

这个应该从哪里入手去做? 有什么好办法?

我要做简繁体转换了

给自己定个任务..否则不能这么懒散下去了...思路已经明确..最重要的是不能影响速度...明天开工..

在eclipse中运行test的时候出现java.lang.OutOfMemoryError: Java heap space错误

你好,我在eclipse中运行程序org.ansj.demo.demo.java的时候会报下面的这个异常:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at love.cq.domain.Branch.add(Unknown Source)
at love.cq.library.Library.insertWord(Unknown Source)
at love.cq.library.Library.insertWord(Unknown Source)
at org.ansj.library.UserDefineLibrary.loadFile(UserDefineLibrary.java:123)
at org.ansj.library.UserDefineLibrary.loadLibrary(UserDefineLibrary.java:164)
at org.ansj.library.UserDefineLibrary.(UserDefineLibrary.java:51)
at org.ansj.util.recognition.UserDefineRecognition.(UserDefineRecognition.java:23)
at org.ansj.splitWord.analysis.ToAnalysis$1.merger(ToAnalysis.java:61)
at org.ansj.splitWord.analysis.ToAnalysis.getResult(ToAnalysis.java:80)
at org.ansj.splitWord.Analysis.analysis(Analysis.java:174)
at org.ansj.splitWord.Analysis.paserStr(Analysis.java:181)
at org.ansj.splitWord.analysis.ToAnalysis.paser(ToAnalysis.java:97)
at org.ansj.demo.NatureDemo.main(NatureDemo.java:18)
我已经将xmx改为1G,请问设置为多大可以运行这个项目?

ansj 内存溢出

我把 ansj_seg倒入到hadoop中来进行分词,但是会报内存不够的错误。我把hadoop的 map 内存调到8G,我测试的是 4M 的文件,但是还是要出错。 但是当我把数据降低到几k 就完全没问题。

我仔细调了下代码,对我应用本身的代码都是主动设置 释放内存,但是还是不能解决问题。 然后看了ansj 的代码,发现每次都要new 一个新对象,不知道是不是这个原因

org.ansj.library.make.MakeArray 实现有个bug

构建出来的array少一个词。
需要在org.ansj.library.make.MakeArray第114行后面,就是for循环之外,加下面的代码:
if (tempStringMap.size() > 0) {
setBaseValue(tempStringMap, previous);
it = tempStringMap.values().iterator();
while (it.hasNext()) {
tempValueResult = it.next();
chars = tempValueResult.getValue().toCharArray();
tempBase = base[previous] + chars[chars.length - 1];
base[tempBase] = tempBase;
check[tempBase] = previous;
status[tempBase] = tempValueResult.getStatus();
words[tempBase] = tempValueResult.getValue();
natures[tempBase] = tempValueResult.getNatures();
}
}

如果文本中含有乱码,识别词性就悲剧了。

用ansj给一个目录下的所有txt文档建立索引,碰巧有一个文本文件里面是乱码。
new NatureRecognition(terms).recognition()到时候,就会卡住。

ps:没有研究过分词算法,也不知道是如何工作的。提出简单问题,高手见谅。

更新后,新词发现的算法依然还有点缺陷

我用nlanalyse测试:
  国家发改委价格监督检查与反垄断局局长许昆林接受中新社记者采访时表示,目前,涉案的六家企业已提出整改措施:一是承诺今后将严格遵守**法律,自觉维护市场竞争秩序,保护其他经营者和消费者合法权益;二是承诺尽最大努力向**彩电企业公平供货,向所有客户提供同等的高端产品、新技术产品采购机会;三是承诺对**彩电企业内销电视提供的面板无偿保修服务期限由18个月延长到36个月。

结果是:
[ ,  , 国家/n, 发/v, 改/v, 委/j, 价格/n, 监督/vn, 检查/vn, 与/p, 反/v, 垄断/v, 局/n, 局长/n, 许昆林/nr, 接受/v, 中新社, 记者/n, 采访/v, 时/ng, 表示/v, ,/w, 目前/t, ,/w, 涉案/v, 的/uj, 六家/m, 企业/n, 已/d, 提出/v, 整改/v, 措施/n, :/w, 一/m, 是/v, 承诺/v, 今后/t, 将/d, 严格/ad, 遵守/v, **/ns, 法律/n, ,/w, 自觉/a, 维护/v, 市场/n, 竞争/vn, 秩序/n, ,/w, 保护/v, 其他/r, 经营者/n, 和/c, 消费者/n, 合法/a, 权益/n, ;/w, 二/m, 是/v, 承诺/v, 尽/v, 最大, 努力/ad, 向/p, **彩电企业/nt, 公平/a, 供货/vn, ,/w, 向/p, 所有/b, 客户/n, 提供/v, 同等/b, 的/uj, 高端, 产品/n, 、/w, 新/a, 技术/n, 产品/n, 采购/vn, 机会/n, ;/w, 三是承诺对**彩电企业/nt, 内销/v, 电视/n, 提供/v, 的/uj, 面板/n, 无偿/d, 保修/v, 服务/vn, 期限/n, 由/p, 18个/m, 月/n, 延长/v, 到/v, 36个/m, 月/n, 。/w]
这次训练已经学到了: 7 个词!
8144
[许昆林=-13.249051133691689, 许昆=-1.2250285799753573, 中新=-1.0, 三是承诺对**彩电企业=-0.15802078036625553, **彩电企业=-0.01725026304491465, 中新社=-0.0017852322907908906, 新社=-6.774132068968733E-6]

很明显,“三是承诺对**彩电企业”把它当作新词,并且是nt的,还没看明白博主程序里branch,能否继续和下一个term组成新词是怎样判定的。

需要做一个.简体繁体转换功能.

需要做一个.简体繁体转换功能.在输入文本的进口处.将繁体转换为简体.实现了简单的繁体识别.虽然很二一定要考虑向律.目前不考虑.软件软体.等特殊简繁体的转换

Does ansj support stopword solution?

Hi Sun,

It seems ansj analysis doesn't support stopword filtration, is that true?

I'm eagerly wish you could make it happen.

Regards,
Spancer

如何优雅修正特定分词错误?

“市医保定点医疗机构”
这个分词分为
市/n 医/v 保定/ns 点/q 医疗机构/n

我在用户自定义词典中加入了 医保和定点这两个词,依然没效果,
除非我去删除arrays.dic 关于“保定”这个记录。
分词才能正确。

请问有什么方法可以优雅地修正这些分词特例的错误呢?

Can you make the project under maven management?

Hey Sun,

It's really a good language analyse tool, i'm using it right now. But, it seems it's not that convenient to synchro the latest ansj code to my project. If only ansj's under maven management.

Spancer

增加输出日志

hi,ansjsun,
我正在使用ansj_seg,发现存在一个小问题,就是没有日志输出,全是用system.err/system.out打印的,这会导致问题追踪比较困难,我已经fork了代码,修改完毕后会给你发个pull request,ok不?

用户自定义词典无效

如下代码:
UserDefineLibrary.insertWord("尼康", "brand", 1000);
List terms = ToAnalysis.paser("尼康(NIKON)");
(new NatureRecognition(terms)).recognition();
System.out.println(terms);

得到结果:
[尼/j, 康/j, , nikon/en, ]

"尼康"两个字被分开了,请问这是一个bug吗?

博主,现在有两个问题

问题1:
bigramdict.dic 11 days ago 将Bigram不做二进制.虽然加载慢了但是用户可以自己解决歧异 [ansjsun]
可是打开后一堆乱码,没法自己解决歧异啊

问题2:
systemLibrary.dic里词库的格式为:
查布尔省 nr 1037
想请教一下 这个词性nr主要起了什么作用,可以不要吗? 这个1037 又表示啥意思,能改吗?

用户自定义词典添加的路径问题

1:建议将加载的根改在classes下就和library.properties加载路径一样就好,放在项目根下不加加载特别是用到maven测试的时候我不管放那它好像都无法加载到。

PS:如果能改成maven项目就更加好了,这个方便

2:如路径是文件夹时加载文件夹下的dic文件这个功能有bug,它和我指定一个文件分词出的结果是不一样的代码如下:

    MyStaticValue.userDefinePath="E:/library/userLibrary.dic";
    Analysis udf = new ToAnalysis(new StringReader("土建工程师反遭毒手城市规划师龟龙麟凤T恤B超龚鼎重写了"));
    Term term = null ;
    List<Term> list=new ArrayList<Term>();
    while((term=udf.next())!=null){
        //term.getTermNatures().
        //System.out.print(term.getName()+" "+nature);
        list.add(term);
    }
    new NatureRecognition(list).recognition() ;
    for (Term term2 : list) {
        System.out.println(term2.getName()+":"+term2.getNatrue().natureStr +" ");
    }

结果是:
土建工程师:n
反遭毒手:v
城市规划师:n
龟龙麟凤:ns
t:en
恤:nr
b:en
超:v
龚鼎:nr
重写:v
了:ul

如改成:
MyStaticValue.userDefinePath="E:/library"
结果是:
土建:n
工程师:n
反:v
遭:v
毒手:n
城市:n
规划师:n
龟:n
龙麟凤:nr
t:en
恤:nr
b:en
超:v
龚鼎:nr
重写:v
了:ul

这明显不是我想要的....

博主,我看到dic目录下有 arrays.dic这个文件,有两个疑问

如上
1,这个词库里有些不被识别的乱码,随便找一个:
46 . 46 -1 3 {w
w 的后面是=2,但中间有个无法识别字符,这会不会影响分词效果?

2,我想自己重新生成一遍这个文件,找到这生成的方法是MakLibrary.java,但是 “data/library.dic" 这个文件找不着,能不能提供一下、

附一个问题:dic/bigramdict.data 这里面全是乱码,到底做什么用的呢,能否说明一下

同样的词分出的结果不稳定

Hi Sun,

我在做ANSJ分词测试的时候遇到这样一个问题:
用 '熊拥军, 邓至谦 熊拥军, 凌兴珠,江玲,敖晖 熊拥军' 作为关键字, 用默认的ToAnalysis去分词,分出来的结果, 除了第一个熊拥军 是完整的,其它的‘熊拥军’ 都被分成了‘熊’和 ‘拥军’两个词,ANSJ对同样的词,分出来的结果是不一样的, 貌似这是一个很大的BUG...
貌似,单独切分‘熊拥军’ 这个词时,结果是‘熊拥军’一个词,但是,将‘熊拥军’这个词放在非第一个词的时候,就会出现这个问题。很多名字之类的词语是这样的。
请问,有好的解决方法么?

Thanks,
Spancer

可以设一下词典中词语优先级来修正特定分词错误吗?

你好,我最近用到这个分词算法,可算是是在到的开源的中文分词中效果最好的了,但想问下,分词是根据最大匹配原则的吗,试过对比在词典里的不同分词情况,好像总是取最长的情况,有时如果有时我想对文章里几个的词语不使用用户词典的最长分词,应该怎样做?看过里边的代码,大概知道里边的流程,但里边的term里的路径评分方法看不太懂,是寻找最优路径算法中viterbi 里的方法吗?

人名识别优先与词典?

hi,ansj
自定义词典包含“东方路”和“北园路”,并且加载成功。
输入:
上海浦东沿街办公出租:东方路北园路三百二十平,3元8每日每平,橱窗宽八米送车位二个露台二百平,房东18917023639【森盛】
部分输出:
东方, 路北园, 路三百二十平。

人名识别优先级太高了,像“路三百二十平”这种也被识别为人名了。

停词的处理

-大东海,解析成-大 东海
对-停词的过滤应该高于系统词典。

能否提供tree-split-word.jar的源码?

首先感谢开源这个分词库。我正在试图把这个库转换为maven项目,但是遇到二进制的依赖tree-split-word,不知道方不方便把这部分也一并开源,放在同一个代码树下?谢谢!

中英文混词大小写的一个问题

自定义词为
B超 n 3
T恤 n 4

代码为:
MyStaticValue.userDefinePath=FileUtil.getAppPath(AnsjTest.class)+"/library/userLibrary.dic";
Analysis udf = new ToAnalysis(new StringReader("土建工程师反遭毒手城市规划师龟龙麟凤T恤B超龚鼎重写了"));
Term term = null ;
List list=new ArrayList();
while((term=udf.next())!=null){
//term.getTermNatures().
//System.out.print(term.getName()+" "+nature);
list.add(term);
}
new NatureRecognition(list).recognition() ;
for (Term term2 : list) {
System.out.println(term2.getName()+":"+term2.getNatrue().natureStr +" ");
}

结果:
土建工程师:n
反遭毒手:v
城市规划师:n
龟龙麟凤:ns
t:en
恤:nr
b:en
超:v
龚鼎:nr
重写:v
了:ul

B超和T恤没有分词出来,这个应该是大小写的问题
如我将词改为
b超 n 3
t恤 n 4

结果就是对的

support Solr

all lib is include.and exception java.lang.NoClassDefFoundError: org/ansj/splitWord/analysis/ToAnalysis

my config error ? or it does not support solr

初学者请教 ansj_seg使用问题

我刚刚接触ansj_seg分词系统,感觉这个分词系统分词效果很好的。但是这里有两个疑问

1 为什么没有直接返回String 类型的方法呢?我查了下ToAnalysis 类返回的都是List,感觉有点不方便,因为有时我不需要词性等信息,请问有没有直接返回分词的api呢?(因为分词只是我处理语料的第一步,如果我再对List for循环来转换成string 类型,可能会变得很慢。)

2 我看了下ToAnalysis 的paser方法,似乎每次都要new 一个ToAnalysis 类。因为我处理的语料是微博,如果每条微博我都要new 一个ToAnalysis 类,这样会不会使得性能变得很低,并且占用很多内存。请问有没有更好的解决方法。比如只在一个ToAnalysis 类里面 处理所有的分词。

谢谢

iphone好像分词不对,但在你们的在线测试环境里确实对的,为什么?

hi,ansjsun
使用https://github.com/ansjsun/ansj_seg/tree/master/contrib 下载的jar文件做了个测试

import java.io.IOException;
import java.io.StringReader;

import org.ansj.lucene3.AnsjAnalysis;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;


public class TestAnalyzer {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        AnsjAnalysis analyzer = new AnsjAnalysis();

        TokenStream ts = analyzer.tokenStream("hello", new StringReader("我的iphone丢了"));
        Token token;
        try
        {
             while(ts.incrementToken())
          {
            System.out.println(ts.getAttribute(TermAttribute.class).term());
          }
        }
        catch (IOException ioe)
        {
          ioe.printStackTrace();
        }

    }

}

怎么分词的结果里iphone变成iphon了?

词典加载完成用时:2380毫秒
加载关联词典完成用时:2339
加载用户自定义词典完成用时:1332
我
的
iphon
丢
了

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.