feat: text editor and blog post
This commit is contained in:
parent
9e383ee26e
commit
78297efe5c
17 changed files with 2008 additions and 24 deletions
|
|
@ -83,16 +83,31 @@ def text_rank(sentences, model_name='all-mpnet-base-v2'):
|
|||
adjacency[adjacency < 0] = 0
|
||||
return normalized_adjacency(adjacency)
|
||||
|
||||
def extract(source_text, model_name='all-mpnet-base-v2'):
|
||||
"""
|
||||
Main API function that extracts sentence positions and computes normalized adjacency matrix.
|
||||
|
||||
Returns:
|
||||
sentence_ranges: List of (start, end) tuples for each sentence's character position
|
||||
adjacency: (N × N) normalized adjacency matrix where N is the number of sentences.
|
||||
Each entry (i,j) represents the normalized similarity between sentences i and j.
|
||||
This matrix is returned to the frontend, which raises it to a power and computes
|
||||
the final salience scores via random walk simulation.
|
||||
"""
|
||||
sentences, sentence_ranges = get_sentences(source_text)
|
||||
adjacency = text_rank(sentences, model_name)
|
||||
return sentence_ranges, adjacency
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# Unused/Debugging Code
|
||||
# =============================================================================
|
||||
|
||||
def terminal_distr(adjacency, initial=None):
|
||||
sample = initial if initial is not None else torch.full((adjacency.shape[0],), 1.)
|
||||
scores = sample.matmul(torch.matrix_power(adjacency, 10)).numpy().tolist()
|
||||
return scores
|
||||
|
||||
def extract(source_text, model_name='all-mpnet-base-v2'):
|
||||
sentences, sentence_ranges = get_sentences(source_text)
|
||||
adjacency = text_rank(sentences, model_name)
|
||||
return sentence_ranges, adjacency
|
||||
|
||||
def get_results(sentences, adjacency):
|
||||
scores = terminal_distr(adjacency)
|
||||
for score, sentence in sorted(zip(scores, sentences), key=lambda xs: xs[0]):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue