Skip to content

Keyword

LlamaIndex数据结构。

KeywordTableIndex #

Bases: BaseKeywordTableIndex

关键词表索引。

该索引使用GPT模型从文本中提取关键词。

Source code in llama_index/core/indices/keyword_table/base.py
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
class KeywordTableIndex(BaseKeywordTableIndex):
    """关键词表索引。

    该索引使用GPT模型从文本中提取关键词。"""

    def _extract_keywords(self, text: str) -> Set[str]:
        """从文本中提取关键词。"""
        response = self._llm.predict(
            self.keyword_extract_template,
            text=text,
        )
        return extract_keywords_given_response(response, start_token="KEYWORDS:")

    async def _async_extract_keywords(self, text: str) -> Set[str]:
        """从文本中提取关键词。"""
        response = await self._llm.apredict(
            self.keyword_extract_template,
            text=text,
        )
        return extract_keywords_given_response(response, start_token="KEYWORDS:")

SimpleKeywordTableIndex #

Bases: BaseKeywordTableIndex

简单的关键词表索引。

该索引使用简单的正则表达式提取器从文本中提取关键词。

Source code in llama_index/core/indices/keyword_table/simple_base.py
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class SimpleKeywordTableIndex(BaseKeywordTableIndex):
    """简单的关键词表索引。

    该索引使用简单的正则表达式提取器从文本中提取关键词。"""

    def _extract_keywords(self, text: str) -> Set[str]:
        """从文本中提取关键词。"""
        return simple_extract_keywords(text, self.max_keywords_per_chunk)

    def as_retriever(
        self,
        retriever_mode: Union[
            str, KeywordTableRetrieverMode
        ] = KeywordTableRetrieverMode.SIMPLE,
        **kwargs: Any,
    ) -> BaseRetriever:
        return super().as_retriever(retriever_mode=retriever_mode, **kwargs)

RAKEKeywordTableIndex #

Bases: BaseKeywordTableIndex

RAKE关键词表索引。

该索引使用RAKE关键词提取器从文本中提取关键词。

Source code in llama_index/core/indices/keyword_table/rake_base.py
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class RAKEKeywordTableIndex(BaseKeywordTableIndex):
    """RAKE关键词表索引。

该索引使用RAKE关键词提取器从文本中提取关键词。"""

    def _extract_keywords(self, text: str) -> Set[str]:
        """从文本中提取关键词。"""
        return rake_extract_keywords(text, max_keywords=self.max_keywords_per_chunk)

    def as_retriever(
        self,
        retriever_mode: Union[
            str, KeywordTableRetrieverMode
        ] = KeywordTableRetrieverMode.RAKE,
        **kwargs: Any,
    ) -> BaseRetriever:
        return super().as_retriever(retriever_mode=retriever_mode, **kwargs)