Hellisotherpeople commited on
Commit
1eebb42
·
verified ·
1 Parent(s): 8d72bb7

Modernize: latest deps, py3.12, cache_data/cache_resource, fix empty seed_keywords IndexError

Browse files
Files changed (3) hide show
  1. README.md +2 -0
  2. app.py +9 -6
  3. requirements.txt +2 -2
README.md CHANGED
@@ -4,8 +4,10 @@ emoji: 🔑
4
  colorFrom: purple
5
  colorTo: green
6
  sdk: streamlit
 
7
  app_file: app.py
8
  pinned: false
 
9
  ---
10
 
11
  # Configuration
 
4
  colorFrom: purple
5
  colorTo: green
6
  sdk: streamlit
7
+ python_version: "3.12"
8
  app_file: app.py
9
  pinned: false
10
+ license: mit
11
  ---
12
 
13
  # Configuration
app.py CHANGED
@@ -40,15 +40,15 @@ form.caption("See the list of pre-trained models that are available here! https:
40
  form.form_submit_button("Submit")
41
 
42
 
43
- @st.cache
44
- def load_and_process_data(path, name, streaming, split_name, number_of_records):
45
- dataset = load_dataset(path = path, name = name, streaming=streaming)
46
  #return list(dataset)
47
  dataset_head = dataset[split_name].take(number_of_records)
48
  df = pd.DataFrame.from_dict(dataset_head)
49
  return df[column_name]
50
 
51
- @st.cache(allow_output_mutation=True)
52
  def load_model(model_name):
53
  kw_model = KeyBERT(model=model_name)
54
  return kw_model
@@ -57,7 +57,7 @@ model = load_model(model_name=model_name)
57
 
58
  if custom_doc:
59
  st.header("Original Dataset")
60
- df = load_and_process_data(dataset_name, dataset_name_2, True, split_name, number_of_records)
61
  doc = list(df[index_to_analyze_start:index_to_analyze_end])
62
  st.write(df)
63
  st.header("Indexed Documents")
@@ -86,7 +86,10 @@ form2.caption("Due to the implementation details of this in KeyBERT, this doesn'
86
 
87
  form2.form_submit_button("Submit")
88
 
89
- keywords = model.extract_keywords(doc, keyphrase_ngram_range=(keyphrase_min, keyphrase_max), use_maxsum = use_maxsum, use_mmr = use_mmr, diversity = diversity, top_n = top_n, min_df = min_df, nr_candidates = nr_candidates, seed_keywords = seed_keywords.split())
 
 
 
90
 
91
  st.header("Extracted Keywords/Keyphrases")
92
  st.caption("Output is sorted in reverse order (so the final element is the strongest keyphrase and the first element is the nth strongest)")
 
40
  form.form_submit_button("Submit")
41
 
42
 
43
+ @st.cache_data
44
+ def load_and_process_data(path, name, streaming, split_name, number_of_records, column_name):
45
+ dataset = load_dataset(path = path, name = name or None, streaming=streaming)
46
  #return list(dataset)
47
  dataset_head = dataset[split_name].take(number_of_records)
48
  df = pd.DataFrame.from_dict(dataset_head)
49
  return df[column_name]
50
 
51
+ @st.cache_resource
52
  def load_model(model_name):
53
  kw_model = KeyBERT(model=model_name)
54
  return kw_model
 
57
 
58
  if custom_doc:
59
  st.header("Original Dataset")
60
+ df = load_and_process_data(dataset_name, dataset_name_2, True, split_name, number_of_records, column_name)
61
  doc = list(df[index_to_analyze_start:index_to_analyze_end])
62
  st.write(df)
63
  st.header("Indexed Documents")
 
86
 
87
  form2.form_submit_button("Submit")
88
 
89
+ ## KeyBERT indexes seed_keywords[0] directly, so an empty list raises IndexError - pass None instead
90
+ seed_keywords_list = seed_keywords.split() or None
91
+
92
+ keywords = model.extract_keywords(doc, keyphrase_ngram_range=(keyphrase_min, keyphrase_max), use_maxsum = use_maxsum, use_mmr = use_mmr, diversity = diversity, top_n = top_n, min_df = min_df, nr_candidates = nr_candidates, seed_keywords = seed_keywords_list)
93
 
94
  st.header("Extracted Keywords/Keyphrases")
95
  st.caption("Output is sorted in reverse order (so the final element is the strongest keyphrase and the first element is the nth strongest)")
requirements.txt CHANGED
@@ -1,5 +1,5 @@
1
- keybert
2
  streamlit
 
 
3
  pandas
4
  datasets
5
- altair<5
 
 
1
  streamlit
2
+ keybert
3
+ sentence-transformers
4
  pandas
5
  datasets