Использовать кастомный коллектор с пилуценом 2.9.4
Я пытаюсь рассчитать термины с высоким PMI для конкретного токена в пилицене. Коллега дал мне некоторый Java-код, который работает, но у меня возникли проблемы с переводом его на Python. В частности, код опирается на пользовательский коллектор. Вот начальный код запроса:
def __init__(self, some_token, searcher, analyzer):
super(PMICalculator, self).__init__()
self.searcher = searcher
self.analyzer = analyzer
self.escaped_token = QueryParser.escape(some_token)
self.query = QueryParser("text",self.analyzer).parse(self.escaped_token)
self.term_count_collector = TermCountCollector(searcher)
self.searcher.search(self.query, self.term_count_collector)
self.terms = self.term_count_collector.getTerms()
Вот класс Term Count Collector: http://snipt.org/vgGi8
Этот код ломается на self.searcher.search
с ошибкой:
File <filename>, line 26, in __init__
self.searcher.search(self.query, self.term_count_collector)
lucene.JavaError: org.apache.jcc.PythonException: collect() takes exactly 2 arguments (3 given)
TypeError: collect() takes exactly 2 arguments (3 given)
Java stacktrace:
org.apache.jcc.PythonException: collect() takes exactly 2 arguments (3 given)
TypeError: collect() takes exactly 2 arguments (3 given)
at org.apache.pylucene.search.PythonHitCollector.collect(Native Method)
at org.apache.lucene.search.HitCollectorWrapper.collect(HitCollectorWrapper.java:46)
at org.apache.lucene.search.TermScorer.score(TermScorer.java:86)
at org.apache.lucene.search.TermScorer.score(TermScorer.java:74)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:252)
at org.apache.lucene.search.Searcher.search(Searcher.java:110)
Я провел поиск в Google, но безрезультатно - я новичок в lucene и не могу сказать, является ли это просто функцией, которая не поддерживается в 2.9.4, или это проблема с пилюценом, или мой код неверен. Пожалуйста помоги!