A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://textblob.readthedocs.io/en/dev/_modules/textblob/base.html below:

textblob.base — TextBlob 0.19.0 documentation

Source code for textblob.base
"""Abstract base classes for models (taggers, noun phrase extractors, etc.)
which define the interface for descendant classes.

.. versionchanged:: 0.7.0
    All base classes are defined in the same module, ``textblob.base``.
"""

from __future__ import annotations

from abc import ABCMeta, abstractmethod
from typing import TYPE_CHECKING

import nltk

if TYPE_CHECKING:
    from typing import Any, AnyStr

##### POS TAGGERS #####



[docs]
class BaseTagger(metaclass=ABCMeta):
    """Abstract tagger class from which all taggers
    inherit from. All descendants must implement a
    ``tag()`` method.
    """


[docs]
    @abstractmethod
    def tag(self, text: str, tokenize=True) -> list[tuple[str, str]]:
        """Return a list of tuples of the form (word, tag)
        for a given set of text or BaseBlob instance.
        """
        ...




##### NOUN PHRASE EXTRACTORS #####






##### TOKENIZERS #####



[docs]
class BaseTokenizer(nltk.tokenize.api.TokenizerI, metaclass=ABCMeta):  # pyright: ignore
    """Abstract base class from which all Tokenizer classes inherit.
    Descendant classes must implement a ``tokenize(text)`` method
    that returns a list of noun phrases as strings.
    """


[docs]
    @abstractmethod
    def tokenize(self, text: str) -> list[str]:
        """Return a list of tokens (strings) for a body of text.

        :rtype: list
        """
        ...



[docs]
    def itokenize(self, text: str, *args, **kwargs):
        """Return a generator that generates tokens "on-demand".

        .. versionadded:: 0.6.0

        :rtype: generator
        """
        return (t for t in self.tokenize(text, *args, **kwargs))




##### SENTIMENT ANALYZERS ####


DISCRETE = "ds"
CONTINUOUS = "co"



[docs]
class BaseSentimentAnalyzer(metaclass=ABCMeta):
    """Abstract base class from which all sentiment analyzers inherit.
    Should implement an ``analyze(text)`` method which returns either the
    results of analysis.
    """

    _trained: bool

    kind = DISCRETE

    def __init__(self):
        self._trained = False

    def train(self):
        # Train me
        self._trained = True


[docs]
    @abstractmethod
    def analyze(self, text) -> Any:
        """Return the result of of analysis. Typically returns either a
        tuple, float, or dictionary.
        """
        # Lazily train the classifier
        if not self._trained:
            self.train()
        # Analyze text
        return None




##### PARSERS #####



[docs]
class BaseParser(metaclass=ABCMeta):
    """Abstract parser class from which all parsers inherit from. All
    descendants must implement a ``parse()`` method.
    """


[docs]
    @abstractmethod
    def parse(self, text: AnyStr):
        """Parses the text."""
        ...



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4