pyevoc.features#
Foregrounding, emoji assignment, unigram selection, term indices, concreteness, and emoji labelling.
PyEvoc feature-engineering layer.
This subpackage exposes foregrounding indicators, unigram selection, emoji assignment, concreteness enrichment, emoji labelling and term-level EVOC indices. Public objects are loaded lazily to keep documentation imports light.
- class pyevoc.features.ConcretenessConfig(lexicon_file='concreteness_lexicon.csv', models_dir=None, term_col='term', upos_col='upos', absent_label='-', cut_abstract=2.5, cut_concrete=3.5, eligible_upos=('NOUN', 'ADJ'), emoji_upos='EMOJI', token_column_candidates=('word', 'term', 'lemma', 'token', 'surface', 'form', 'base_term', 'base'), score_column_candidates=('conc.m', 'conc_m', 'conc.mean', 'conc_mean', 'concreteness', 'concreteness_score', 'conc', 'score', 'rating', 'mean', 'value'), verbose=True)[source]#
Bases:
objectConfiguration for concreteness labelling.
- Parameters:
- score_column_candidates: tuple[str, ...] = ('conc.m', 'conc_m', 'conc.mean', 'conc_mean', 'concreteness', 'concreteness_score', 'conc', 'score', 'rating', 'mean', 'value')#
- class pyevoc.features.EmojiAssignmentConfig(token_col='text', lemma_col='lemma', upos_col='upos', doc_col='doc_id', user_col='user_id', emoji_upos='EMOJI', show_progress=True, verbose=True, top_n=10)[source]#
Bases:
objectConfiguration for emoji UPOS assignment and diagnostics.
- Parameters:
- class pyevoc.features.EmojiLabellingConfig(lookup_file='emoji_lookup.csv', models_dir=None, term_col='term', upos_col='upos', emoji_upos='EMOJI', min_similarity=0.8, verbose=True)[source]#
Bases:
objectConfiguration for emoji description labelling.
- Parameters:
- class pyevoc.features.ForegroundingConfig(doc_col='doc_id', user_col='user_id', time_col='time', source_col='source', token_col='text', sentence_col='sentence_id', position_col='position', opening_sentence_value=1, emphasis_pattern=re.compile('(?:\\*\\*|__|<b>|</b>|<strong>|</strong>|_{2,}|\\*{2,})', re.IGNORECASE), list_or_quote_pattern=re.compile('^\\s*(?:-|\\*|>|•|–|—|\\d+[\\.\\)]|[a-zA-Z][\\.\\)])'), intensification_pattern=re.compile('(?:[A-Z]{3,}|!{2,}|\\?{2,}|[!?]{3,})'), weights=ForegroundingWeights(opening_sentence=0.35, emphasis=0.25, list_or_quote=0.2, intensification=0.2), keep_component_scores=True, show_progress=True)[source]#
Bases:
objectConfiguration for token-level foregrounding indicators.
- Parameters:
doc_col (str)
user_col (str)
time_col (str)
source_col (str)
token_col (str)
sentence_col (str)
position_col (str)
opening_sentence_value (int)
emphasis_pattern (Pattern)
list_or_quote_pattern (Pattern)
intensification_pattern (Pattern)
weights (ForegroundingWeights)
keep_component_scores (bool)
show_progress (bool)
- emphasis_pattern: Pattern = re.compile('(?:\\*\\*|__|<b>|</b>|<strong>|</strong>|_{2,}|\\*{2,})', re.IGNORECASE)#
- list_or_quote_pattern: Pattern = re.compile('^\\s*(?:-|\\*|>|•|–|—|\\d+[\\.\\)]|[a-zA-Z][\\.\\)])')#
- weights: ForegroundingWeights = ForegroundingWeights(opening_sentence=0.35, emphasis=0.25, list_or_quote=0.2, intensification=0.2)#
- class pyevoc.features.ForegroundingWeights(opening_sentence=0.35, emphasis=0.25, list_or_quote=0.2, intensification=0.2)[source]#
Bases:
objectWeights used to compute structural foregrounding salience.
- normalised()[source]#
Return a copy of the weights scaled so that they sum to 1.
- Raises:
ValueError – If the weights sum to zero or a negative value.
- Return type:
- class pyevoc.features.SalienceConfig(alpha=0.5, max_rank_value=5.0, use_users_for_frequency=True, focal_upos=<factory>)[source]#
Bases:
objectConfiguration for term-level salience and diffusion indicators.
- Parameters:
- class pyevoc.features.UnigramSelectionConfig(focal_upos=<factory>, token_col='text', display_col=None, lemma_col='lemma', upos_col='upos', doc_col='doc_id', user_col='user_id', term_col='term', stop_words=<factory>, min_chars=2, min_docs_per_term=3, min_users_per_term=3, exclude_url_token=True, require_latin_terms=True, remove_numeric_terms=True, remove_punct_only=True, lowercase_non_emoji=True, return_diagnostics=False, verbose=True)[source]#
Bases:
objectConfiguration for unigram cleaning and selection.
- Parameters:
token_col (str)
display_col (str | None)
lemma_col (str)
upos_col (str)
doc_col (str)
user_col (str)
term_col (str)
min_chars (int)
min_docs_per_term (int)
min_users_per_term (int)
exclude_url_token (bool)
require_latin_terms (bool)
remove_numeric_terms (bool)
remove_punct_only (bool)
lowercase_non_emoji (bool)
return_diagnostics (bool)
verbose (bool)
- pyevoc.features.add_concreteness_labels(term_stats_df, *, lexicon=None, config=None, models_dir=None, lexicon_file=None, absent_label=None, cut_abstract=None, cut_concrete=None)[source]#
Add concreteness labels to a term-level dataframe.
- pyevoc.features.add_emoji_descriptions(term_stats_df, *, lookup=None, config=None, models_dir=None, emoji_lookup_file=None, min_similarity=None)[source]#
Add emoji descriptions to a term-level dataframe.
- pyevoc.features.add_foregrounding_indicators(tokens, *, sentence_col='sentence_id', token_col='text', opening_sentence_value=1, emphasis_pattern=EMPHASIS_RE, list_or_quote_pattern=LIST_OR_QUOTE_RE, intensification_pattern=INTENSIFICATION_RE)[source]#
Add binary foregrounding indicators to a token table.
- pyevoc.features.add_positional_salience(tokens, doc_col='doc_id', position_col='position', *, output_col='r_pos', show_progress=True)[source]#
Compute positional salience
r_poswithin documents.
- pyevoc.features.add_salience_indicators(tokens, *, config=None)[source]#
Add foregrounding, structural salience and positional salience.
- Parameters:
tokens (DataFrame)
config (ForegroundingConfig | None)
- Return type:
DataFrame
- pyevoc.features.assign_emoji_upos(tokens, token_col='text', upos_col='upos', lemma_col='lemma', *, config=None, return_diagnostics=False)[source]#
Assign
UPOS='EMOJI'to emoji tokens.- Parameters:
tokens (DataFrame) – Token-level dataframe.
token_col (str) – Column containing token text. Ignored when
configis supplied.upos_col (str) – Column containing UPOS tags. Ignored when
configis supplied.lemma_col (str) – Column containing lemma values. Ignored when
configis supplied.config (EmojiAssignmentConfig | None) – Optional
EmojiAssignmentConfig.return_diagnostics (bool) – If True, return
(tokens, diagnostics, summary). If False, return only the modified token dataframe.
- Returns:
Modified token table, and optionally diagnostic and summary tables.
- Return type:
pandas.DataFrame or tuple[pandas.DataFrame, pandas.DataFrame, pandas.DataFrame]
- pyevoc.features.available_concreteness_lexicon_paths(lexicon_file='concreteness_lexicon.csv')[source]#
Return a diagnostic table of detected lexicon locations.
- Parameters:
lexicon_file (str)
- Return type:
DataFrame
- pyevoc.features.available_emoji_lookup_paths(lookup_file='emoji_lookup.csv')[source]#
Return a diagnostic table of detected emoji lookup locations.
- Parameters:
lookup_file (str)
- Return type:
DataFrame
- pyevoc.features.clean_unigram_tokens(tokens, *, config=None)[source]#
Clean and select unigram tokens.
- Parameters:
tokens (DataFrame)
config (UnigramSelectionConfig | None)
- Return type:
DataFrame | tuple[DataFrame, DataFrame, DataFrame]
- pyevoc.features.compute_structural_salience(tokens, weights=ForegroundingWeights(), *, keep_component_scores=True, show_progress=True)[source]#
Compute weighted structural salience
r_str.- Parameters:
tokens (DataFrame)
weights (ForegroundingWeights)
keep_component_scores (bool)
show_progress (bool)
- Return type:
DataFrame
- pyevoc.features.compute_term_indices(tokens, *, term_col='term', upos_col='upos', user_col='user_id', doc_col='doc_id', r_pos_col='r_pos', r_str_col='r_str', config=SalienceConfig(), return_thresholds=False, return_quadrants=False)[source]#
Backward-compatible wrapper for term-level index computation.
- pyevoc.features.compute_term_statistics(tokens, *, term_col='term', upos_col='upos', user_col='user_id', doc_col='doc_id', time_col='time', r_pos_col='r_pos', r_str_col='r_str', term_type_col='term_type', config=SalienceConfig(), human_readable_quadrants=False, show_progress=True)[source]#
Compute term-level statistics, thresholds and quadrant summaries.
- pyevoc.features.emoji_assignment_diagnostics(tokens, *, token_col='text', upos_col='upos', doc_col='doc_id', user_col='user_id', emoji_upos='EMOJI')[source]#
Return one-row diagnostics for emoji assignment.
- Parameters:
tokens (DataFrame) – Token-level dataframe after emoji assignment.
token_col (str) – Column containing token text.
upos_col (str) – Column containing UPOS values.
doc_col (str) – Column containing document identifiers.
user_col (str) – Column containing user identifiers.
emoji_upos (str) – UPOS value assigned to emoji tokens.
- Returns:
One-row diagnostic table.
- Return type:
- pyevoc.features.emoji_summary(tokens, *, token_col='text', upos_col='upos', doc_col='doc_id', user_col='user_id', emoji_upos='EMOJI', top_n=None, only_assigned=True, show_progress=False)[source]#
Return a summary table of emoji usage.
- Parameters:
tokens (DataFrame) – Token-level dataframe.
token_col (str) – Column containing the original token text.
upos_col (str) – Column containing the UPOS tag.
doc_col (str) – Column containing document identifiers. If absent, document counts are omitted.
user_col (str) – Column containing user identifiers. If absent, user counts are omitted.
emoji_upos (str) – UPOS value used for emoji tokens.
top_n (int | None) – If provided, return only the top
nemojis by frequency.only_assigned (bool) – If True, emojis are selected using
upos_col == emoji_upos. If False, emoji detection is recomputed fromtoken_col.show_progress (bool) – Whether to display a progress bar if emoji detection is recomputed.
- Returns:
Emoji summary table with frequency and, when available, document and user coverage.
- Return type:
- pyevoc.features.foregrounding_diagnostics(tokens, *, doc_col='doc_id', user_col='user_id', time_col='time')[source]#
Return diagnostics for foregrounding and salience indicators.
- pyevoc.features.label_concreteness(terms, *, lexicon=None, term_col='term', upos_col='upos', label_col='concreteness_label', score_col='concreteness_score', in_lexicon_col='concreteness_in_lexicon', absent_label='-', cut_abstract=2.5, cut_concrete=3.5, return_coverage=False)[source]#
Backward-compatible wrapper for concreteness labelling.
- pyevoc.features.label_emojis(terms, *, lookup=None, term_col='term', upos_col='upos', description_col='emoji_description', return_diagnostics=False)[source]#
Backward-compatible wrapper for emoji labelling.
- pyevoc.features.load_concreteness_lexicon(path=None, *, models_dir=None, lexicon_file='concreteness_lexicon.csv', encoding='utf-8')[source]#
Load a concreteness lexicon.
- Parameters:
- Returns:
Raw concreteness lexicon.
- Return type:
- pyevoc.features.load_emoji_lookup(path=None, *, models_dir=None, lookup_file='emoji_lookup.csv', encoding='utf-8')[source]#
Load an emoji lookup table.
- pyevoc.features.metadata_coverage(tokens, *, required_metadata=None)[source]#
Return a diagnostic table describing metadata availability.
- pyevoc.features.resolve_concreteness_lexicon_path(lexicon_file='concreteness_lexicon.csv', *, models_dir=None)[source]#
Resolve the concreteness lexicon path.
Resolution order#
lexicon_fileif it already points to an existing file;models_dir / lexicon_fileifmodels_diris supplied;package-bundled resources and package-adjacent model folders;
user model path, usually
~/.pyevoc/models/lexicon_file.
- pyevoc.features.select_unigrams(tokens, *, lemma_col='lemma', upos_col='upos', keep_upos=None, min_chars=2, lowercase=True, token_col='text', doc_col='doc_id', user_col='user_id', min_docs_per_term=3, min_users_per_term=3, return_diagnostics=False)[source]#
Backward-compatible wrapper for unigram selection.
- Parameters:
- Return type:
DataFrame | tuple[DataFrame, DataFrame, DataFrame]
- pyevoc.features.term_statistics_summary(term_stats, *, upos_col='upos', quadrant_col='quadrant')[source]#
Return a compact summary of term-level statistics by UPOS and quadrant.