Lista de Características - aiboxlab/nlp GitHub Wiki
Essa página contém o conjunto de características disponibilizadas pela biblioteca.
aibox-nlp[BR]
)
Português Brasileiro (A tabela abaixo possui um breve descrição dos diferentes extratores de características. Cada extrator provê uma ou mais características. Todos extratores são encontrados em aibox.nlp.features.portuguese
. A coluna "Identificador" contém o nome utilizada para carregamento através do módulo aibox.nlp.factory
.
Um exemplo com todas as características extraídas se encontra no Kaggle em Features from aibox-nlp, no qual o conjunto de características é disponibilizado para o dataset Brazilian Portuguese Narrative Essays Dataset.
Extrator | Identificador | Descrição | #Características |
---|---|---|---|
AgreementExtractor |
agreementBR |
Concordância verbal e nominal. | 2 |
BERTSimilarityExtractor |
bertSimilarityBR |
Similaridade cosseno entre textos baseadas nos embeddings do BERT. | 1 |
CohMetrixExtractor |
cohmetrixBR |
Características do CohMetrix-BR. | 87 |
ConjugationExtractor |
conjugationBR |
Conjugação verbal. | 5 |
ConnectivesExtractorV1 |
connectivesV1BR |
Uso de conectivos. | 33 |
ConnectivesExtractorV2 |
connectivesV2BR |
Uso de conectivos. | 12 |
DescriptiveExtractor |
descriptiveBR |
Características descritivas do texto | 11 |
FuzzySearchSimilarityExtractor |
fuzzySimilarity |
Similaridade de texto através de aproximação de strings. | 8 |
LexicalDiversityExtractor |
lexicalDiversityBR |
Diversidade léxica. | 15 |
LiwcExtractor |
liwcBR |
Características derivadas do LIWC. | 64 |
NILCSimilarityExtractor |
nilcSimilarityBR |
Similaridade entre textos adotadas pelo NILC-Metrix. | 4 |
OrthographyExtractor |
orthographyBR |
Erros ortográficos através do LangTool. | 1 |
OverlapExtractor |
overlapBR |
Sobreposição de textos. | 2 |
ReadabilityExtractor |
readabilityBR |
Legibilidade textual. | 7 |
ReferentialCohesionExtractor |
referentialCohesionBR |
Coesão referencial. | 9 |
RegencyExtractor |
regencyBR |
Regência nominal e verbal. | 2 |
SemanticExtractorTransformers |
semanticCohesionTransformersBR |
Coesão semântica com Transformers. | 10 |
SemanticExtractor |
semanticCohesionBR |
Coesão semântica com LSA. | 11 |
SequentialCohesionExtractor |
sequentialCohesionBR |
Coesão sequencial. | 7 |
SyntacticComplexityExtractor |
syntacticComplexityBR |
Complexidade sintática. | 16 |
TextualSimplicityExtractor |
textualSimplicityBR |
Simplicidade textual. | 8 |
TFIDFSimilarityExtractor |
tfidfSimilarity |
Similaridade TF-IDF. | 6 |
WordMorphosyntacticInformationExtractor |
wordMorphosyntacticInformationBR |
Informações morfossintáticas das palavras. | 39 |
WordSegmentationExtractor |
wordSegmentationBR |
Segmentação de palavras. | 2 |
--- | --- | --- | 362 |
Como realizar extração de características?
1. Obtendo um extrator manualmente
É possível importar um extrator manualmente e utilizar os métodos definidos em FeatureExtractor
:
from aibox.nlp.features.portuguese.descriptive import DescriptiveExtractor
# Instanciando o extrator com as configurações padrão
extractor = DescriptiveExtractor()
text = "Esse é um texto de exemplo.\nNele temos algumas palavras e quebras de linha."
# Extraindo características
features = extractor.extract(text)
print(features)
# Output: DescriptiveFeatures(total_paragraphs=2, total_sentences=2, sentences_per_paragraph=1.0,
# syllables_per_content_word=2.1666666666666665, total_words=15, words_per_sentence=7.5,
# sentence_length_max=8, sentence_length_min=7, sentence_length_std=0.5, total_stopwords=9,
# stopwords_ratio=0.6428571428571429)
# Também é possível combinar múltiplos extratores:
from aibox.nlp.features.utils.aggregator import AggregatedFeatureExtractor
from aibox.nlp.features.portuguese.textual_simplicity import TextualSimplicityExtractor
extractor = AggregatedFeatureExtractor(extractor, TextualSimplicityExtractor())
# Os métodos são iguais:
print(extractor.extract(text).as_dict())
# Output: {'dialog_pron_ratio': 0.0, 'easy_conj_ratio': 0.4666666666666667, 'hard_conj_ratio': 0.0, 'long_sentence_ratio': 0.0,
# 'medium_long_sentence_ratio': 0.0, 'medium_short_sentence_ratio': 0.0, 'sentence_length_max': 8, 'sentence_length_min': 7,
# 'sentence_length_std': 0.5, 'sentences_per_paragraph': 1.0, 'short_sentence_ratio': 1.0, 'simple_word_ratio': 0.0,
# 'stopwords_ratio': 0.6428571428571429, 'syllables_per_content_word': 2.1666666666666665,
# 'total_paragraphs': 2, 'total_sentences': 2, 'total_stopwords': 9, 'total_words': 15,
# 'words_per_sentence': 7.5}
factory
2. Utilizando o módulo Alternativamente, é possível utilizar as facilidades do módulo aibox.nlp.factory
:
from aibox.nlp.factory import get_extractor
extractor = get_extractor(["descriptiveBR", "textualSimplicityBR"])
text = "Esse é um texto de exemplo.\nNele temos algumas palavras e quebras de linha."
print(extractor.extract(text).as_dict())
# Output: {'dialog_pron_ratio': 0.0, 'easy_conj_ratio': 0.4666666666666667, 'hard_conj_ratio': 0.0, 'long_sentence_ratio': 0.0,
# 'medium_long_sentence_ratio': 0.0, 'medium_short_sentence_ratio': 0.0, 'sentence_length_max': 8, 'sentence_length_min': 7,
# 'sentence_length_std': 0.5, 'sentences_per_paragraph': 1.0, 'short_sentence_ratio': 1.0, 'simple_word_ratio': 0.0,
# 'stopwords_ratio': 0.6428571428571429, 'syllables_per_content_word': 2.1666666666666665,
# 'total_paragraphs': 2, 'total_sentences': 2, 'total_stopwords': 9, 'total_words': 15,
# 'words_per_sentence': 7.5}