使用 Lucene 索引文本文档时出现异常,使用 SnowballAnalyzer 进行清理

     2023-02-16     186

关键词:

【中文标题】使用 Lucene 索引文本文档时出现异常,使用 SnowballAnalyzer 进行清理【英文标题】:Exception when indexing text documents with Lucene, using SnowballAnalyzer for cleaning up 【发布时间】:2010-04-28 07:27:53 【问题描述】:

我正在使用 Lucene 为文档编制索引,并尝试使用 SnowballAnalyzer 从文本中删除标点符号和停用词。我不断收到以下错误:(

IllegalAccessError: 试图从类 org.apache.lucene.analysis.snowball.SnowballAnalyzer 访问方法 org.apache.lucene.analysis.Tokenizer.(Ljava/io/Reader;)V

这是代码,非常感谢帮助!!!!我是新手..

公共类索引器

private Indexer();

private String[] stopWords = ....;

private String indexName;
private IndexWriter iWriter;
private static String FILES_TO_INDEX = "/Users/ssi/forindexing";

public static void main(String[] args) throws   Exception 
  Indexer m = new Indexer();
  m.index("./newindex");



public void index(String indexName) throws Exception 
  this.indexName = indexName;

  final File docDir = new File(FILES_TO_INDEX); 

  if(!docDir.exists() || !docDir.canRead())
        System.err.println("Something wrong... " + docDir.getPath());
        System.exit(1);
    

    Date start = new Date();


        PerFieldAnalyzerWrapper analyzers = new PerFieldAnalyzerWrapper(new SimpleAnalyzer());          
        analyzers.addAnalyzer("text", new SnowballAnalyzer("English", stopWords));
        Directory directory = FSDirectory.open(new File(this.indexName));
        IndexWriter.MaxFieldLength maxLength = IndexWriter.MaxFieldLength.UNLIMITED;

        iWriter = new IndexWriter(directory, analyzers, true, maxLength);

        System.out.println("Indexing to dir..........." + indexName);

        if(docDir.isDirectory())
            File[] files = docDir.listFiles();
            if(files != null)
                for (int i = 0; i < files.length; i++) 
                    try 
                              indexDocument(files[i]);
                          catch (FileNotFoundException fnfe)
                            fnfe.printStackTrace();
                        
            

        
        


System.out.println("Optimizing...... ");
iWriter.optimize();
iWriter.close();
Date end = new Date();
System.out.println("Time to index was" + (end.getTime()-start.getTime()) + "miliseconds");  

private void indexDocument(File someDoc) 抛出 IOException

Document doc = new Document();
Field name = new Field("name", someDoc.getName(), Field.Store.YES, Field.Index.ANALYZED);
Field text = new Field("text",  new FileReader(someDoc), Field.TermVector.WITH_POSITIONS_OFFSETS);
doc.add(name);
doc.add(text);


iWriter.addDocument(doc);

【问题讨论】:

【参考方案1】:

这表示一个 Lucene 类与另一个 Lucene 类不一致——一个正在访问另一个它不能访问的成员。这强烈表明您的类路径中有两个不同且不兼容的 Lucene 版本。

【讨论】:

感谢肖恩!我仍然没有设法解决它......我正在使用 lucene-core3.0.1,我尝试了几个不同的 Snowball 罐子。到目前为止没有任何帮助:/ 我明白了,雪球是一个单独的 .jar?那么很可能是你的版本和你使用的Lucene版本不兼容。 是的,它在单独的 jar 中,因为在我使用的 lucene-core jar 版本(3.0.1)中,org.apache.lucene.analysis 中没有 snowballAnalyzer .. 所以我单独下载了它,尝试了4个版本的雪球,没有解决方案。我发现的最新版本是 snowball-2.4.0。也许我忽略了一些愚蠢的事情?雪球应该在 lucene-core 发行版中出现吗????? 我不知道什么是雪球,我告诉你你的错误是什么意思。 “snowball-2.4.0”表示它与 Lucene 2.4 兼容,而不是 3.0。

尝试使用 itertools.permutations 时出现 MemoryError,如何使用更少的内存?

】尝试使用itertools.permutations时出现MemoryError,如何使用更少的内存?【英文标题】:MemoryErrorwhiletryingtousingitertools.permutations,howuselessmemory?【发布时间】:2015-07-0820:59:01【问题描述】:我正在从包含如此随机字符串的文本文档中加... 查看详情

如何使用 SVM 和 KNN 对文本文档进行分类

】如何使用SVM和KNN对文本文档进行分类【英文标题】:HowcaniclassifytextdocumentswithusingSVMandKNN【发布时间】:2013-05-1715:24:17【问题描述】:几乎所有的例子都是基于数字的。在文本文档中,我有单词而不是数字。那么你能告诉我如... 查看详情

使用随机森林对文本文档进行分类

】使用随机森林对文本文档进行分类【英文标题】:Classifyingtextdocumentswithrandomforests【发布时间】:2014-03-0811:43:47【问题描述】:我有一组4k文本文档。它们属于10个不同的类别。我想看看随机森林方法是如何进行分类的。问题是... 查看详情

使用学习对文本文档进行排名?

】使用学习对文本文档进行排名?【英文标题】:UsingLearningToRankontextualdocuments?【发布时间】:2019-10-2010:56:00【问题描述】:我需要一些帮助来实施学习排名(LTR)。它与我的学期项目有关,我对此完全陌生。详细情况如下:我收... 查看详情

使用 Java 编译器 API 时出现空指针异常

】使用Java编译器API时出现空指针异常【英文标题】:NullPointerExceptionwhileusingJavaCompilerAPI【发布时间】:2011-02-0208:39:07【问题描述】:MyClass.java:packagetest;publicclassMyClasspublicvoidmyMethod()System.out.println("MyMethodCalled");编译MyClass.java文 查看详情

使用 PHP 将文本附加到文本文档中的行

】使用PHP将文本附加到文本文档中的行【英文标题】:Appendtexttolinesintextdocument,usingPHP【发布时间】:2011-06-0922:03:46【问题描述】:如何使用PHP将以下文本附加到文本文档中新行的开头?Line1:T:mytexthereLine2:Z:mytexthereLine3:T:mytexthere... 查看详情

如何阅读 OpenOffice.org 文本文档

...描述】:在我的系统上,我没有安装MicrosoftOffice,因此我使用的是OpenOffice.Org作为替代方案。使用此源,我如何使用C#语言读取ASP.NET中的文本文档?【问题讨论】:你在这个网站上搜索过吗?***.com/questions/ 查看详情

是否可以使用 Google BERT 计算两个文本文档之间的相似度?

】是否可以使用GoogleBERT计算两个文本文档之间的相似度?【英文标题】:IsitpossibletouseGoogleBERTtocalculatesimilaritybetweentwotextualdocuments?【发布时间】:2020-01-1221:32:15【问题描述】:据我了解,BERT的输入应该是有限大小的句子。一些... 查看详情

使用 Java + 正则表达式从文本文档中提取 URL

】使用Java+正则表达式从文本文档中提取URL【英文标题】:ExtractingURLsfromatextdocumentusingJava+RegularExpressions【发布时间】:2010-12-2019:58:15【问题描述】:我正在尝试创建一个正则表达式来使用Java从文本文档中提取URL,但到目前为止... 查看详情

使用 FolderBrowserDialog 时出现异常

】使用FolderBrowserDialog时出现异常【英文标题】:ExceptionwhenusingFolderBrowserDialog【发布时间】:2011-10-1503:59:48【问题描述】:尝试使用FolderBrowserDialog时出现以下异常:System.Threading.ThreadStateException:Currentthreadmustbesettosinglethreadapartment(... 查看详情

在 ASP.NET Core 中呈现 RDLC 报告时出现索引超出范围异常

...我的ASP.NETCoreMVC项目有几个报告。要将报告呈现为PDF,我使用的是AspNetCore.Reporting库。此库适用于单个报告,但由于一些缓存问题,它会在生 查看详情

使用批处理将包含字符串的文件的标题导入文本文档

】使用批处理将包含字符串的文件的标题导入文本文档【英文标题】:Importtitleoffilescontainingstringintoatextdocumentusingbatch【发布时间】:2020-01-1912:58:09【问题描述】:我正在尝试创建一个批处理脚本,它将包含特定字符串的文件夹... 查看详情

使用 sklearn tf-idf 查找矢量化文本文档中的簇数

】使用sklearntf-idf查找矢量化文本文档中的簇数【英文标题】:findingthenumberofclustersinavectorizedtextdocumentwithsklearntf-idf【发布时间】:2018-08-2512:58:51【问题描述】:我正在尝试使用sklearntf-idf和k-means对对话框进行聚类。我使用轮廓分... 查看详情

labview如何读取文本文档中某一行的字符串

...文本文档中的某一行的字符串,例如第十行的字符串,我使用读取文本文档指令它就把所有内容全部读取了,怎么办?求教各位大神!!!可以追加悬赏!!!!ReadfromTextFile函数有一个count输入,表示从文本文件中读取的字节数... 查看详情

使用 MongoEngine 'unique_with' 时出现索引错误:索引已存在不同选项

】使用MongoEngine\\\'unique_with\\\'时出现索引错误:索引已存在不同选项【英文标题】:IndexerrorwhenusingMongoEngine\'unique_with\':indexalreadyexistswithdifferentoptions使用MongoEngine\'unique_with\'时出现索引错误:索引已存在不同选项【发布时间】:2... 查看详情

lucene中分词和索引的区别

...一个个可以进行索引的最小单位(关键词),以便检索时使用。2、索引文件结构索引库是一组索引文件的集合。索引文件的检索:索引表规模相对较小,文档集合规模较大。进行检索时,先从检索索引表开始,然后找到相对应... 查看详情

从文本文档图像中提取文本检测特征

...中可能包含混合文本、图形、图像等的文本。我想我可以使用固定大小的滑动窗口技术并使用前馈NN或SVM对这些区域进行分类,但我在特征提取阶段卡住了常用的特征提取方法是什么?【问题讨论】:您已经决 查看详情

为啥在使用 readlines() 读取文件时出现列表索引超出范围错误?

】为啥在使用readlines()读取文件时出现列表索引超出范围错误?【英文标题】:whygettinglisindexoutofrangeerrorwhilereadingfilewithreadlines()?为什么在使用readlines()读取文件时出现列表索引超出范围错误?【发布时间】:2020-10-2709:19:07【问题... 查看详情