ピルセンの特定のトークンの高 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)
私はいくつかのグーグル検索を行いましたが、役に立ちませんでした-私はluceneが初めてで、これが2.9.4でサポートされている機能ではないのか、ピルセンの問題なのか、コードが間違っているのかわかりません。助けてください!