Spaces:
Runtime error
Runtime error
showing multiple top papers from the author
Browse files- app.py +45 -21
- input_format.py +0 -2
app.py
CHANGED
|
@@ -52,14 +52,16 @@ def get_similar_paper(
|
|
| 52 |
'abstracts': abstracts,
|
| 53 |
'doc_scores': doc_scores
|
| 54 |
}
|
| 55 |
-
pickle.dump(tmp, open('
|
| 56 |
|
| 57 |
# Select top K choices of papers to show
|
| 58 |
titles = titles[:num_papers_show]
|
| 59 |
abstracts = abstracts[:num_papers_show]
|
| 60 |
doc_scores = doc_scores[:num_papers_show]
|
| 61 |
|
| 62 |
-
|
|
|
|
|
|
|
| 63 |
|
| 64 |
def get_highlights(
|
| 65 |
abstract_text_input,
|
|
@@ -101,18 +103,32 @@ def update_name(author_id_input):
|
|
| 101 |
return gr.update(value=name)
|
| 102 |
|
| 103 |
def change_output_highlight(source_sent_choice):
|
|
|
|
| 104 |
# change the output highlight based on the sentence selected from the submission
|
| 105 |
-
if os.path.exists(
|
| 106 |
-
tmp = pickle.load(open(
|
| 107 |
source_sents = tmp['source_sentences']
|
| 108 |
highlights = tmp['highlight']
|
| 109 |
for i, s in enumerate(source_sents):
|
| 110 |
-
print('changing highlight
|
| 111 |
if source_sent_choice == s:
|
| 112 |
return highlights[str(i)]
|
| 113 |
else:
|
| 114 |
return
|
| 115 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
with gr.Blocks() as demo:
|
| 117 |
|
| 118 |
### INPUT
|
|
@@ -130,24 +146,22 @@ with gr.Blocks() as demo:
|
|
| 130 |
with gr.Row():
|
| 131 |
compute_btn = gr.Button('Search Similar Papers from the Reviewer')
|
| 132 |
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
# TODO handle multiple papers
|
| 142 |
|
| 143 |
### PAPER INFORMATION
|
| 144 |
-
with gr.Row():
|
| 145 |
with gr.Column(scale=3):
|
| 146 |
paper_title = gr.Textbox(label='Title', interactive=False)
|
| 147 |
with gr.Column(scale=1):
|
| 148 |
affinity= gr.Number(label='Affinity', interactive=False, value=0)
|
| 149 |
-
with gr.Row():
|
| 150 |
-
paper_abstract = gr.Textbox(label='Abstract', interactive=False)
|
| 151 |
|
| 152 |
with gr.Row(visible=False) as explain_button_row:
|
| 153 |
explain_btn = gr.Button('Show Relevant Parts from Selected Paper')
|
|
@@ -172,11 +186,11 @@ with gr.Blocks() as demo:
|
|
| 172 |
author_id_input
|
| 173 |
],
|
| 174 |
outputs=[
|
| 175 |
-
|
| 176 |
-
paper_abstract,
|
| 177 |
-
affinity,
|
| 178 |
source_sentences,
|
| 179 |
-
|
|
|
|
|
|
|
| 180 |
]
|
| 181 |
)
|
| 182 |
|
|
@@ -195,6 +209,16 @@ with gr.Blocks() as demo:
|
|
| 195 |
inputs=source_sentences,
|
| 196 |
outputs=highlight
|
| 197 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
|
| 199 |
if __name__ == "__main__":
|
| 200 |
demo.launch()
|
|
|
|
| 52 |
'abstracts': abstracts,
|
| 53 |
'doc_scores': doc_scores
|
| 54 |
}
|
| 55 |
+
pickle.dump(tmp, open('paper_info.pkl', 'wb'))
|
| 56 |
|
| 57 |
# Select top K choices of papers to show
|
| 58 |
titles = titles[:num_papers_show]
|
| 59 |
abstracts = abstracts[:num_papers_show]
|
| 60 |
doc_scores = doc_scores[:num_papers_show]
|
| 61 |
|
| 62 |
+
display_title = ['[ %0.3f ] %s'%(s, t) for t, s in zip(titles, doc_scores)]
|
| 63 |
+
|
| 64 |
+
return gr.update(choices=display_title, interactive=True, visible=True), gr.update(choices=input_sentences, interactive=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
|
| 65 |
|
| 66 |
def get_highlights(
|
| 67 |
abstract_text_input,
|
|
|
|
| 103 |
return gr.update(value=name)
|
| 104 |
|
| 105 |
def change_output_highlight(source_sent_choice):
|
| 106 |
+
fname = 'highlight_info.pkl'
|
| 107 |
# change the output highlight based on the sentence selected from the submission
|
| 108 |
+
if os.path.exists(fname):
|
| 109 |
+
tmp = pickle.load(open(fname, 'rb'))
|
| 110 |
source_sents = tmp['source_sentences']
|
| 111 |
highlights = tmp['highlight']
|
| 112 |
for i, s in enumerate(source_sents):
|
| 113 |
+
#print('changing highlight')
|
| 114 |
if source_sent_choice == s:
|
| 115 |
return highlights[str(i)]
|
| 116 |
else:
|
| 117 |
return
|
| 118 |
|
| 119 |
+
def change_paper(selected_papers_radio):
|
| 120 |
+
# change the paper to show
|
| 121 |
+
fname = 'paper_info.pkl'
|
| 122 |
+
if os.path.exists(fname):
|
| 123 |
+
tmp = pickle.load(open(fname, 'rb'))
|
| 124 |
+
for title, abstract, aff_score in zip(tmp['titles'], tmp['abstracts'], tmp['doc_scores']):
|
| 125 |
+
display_title = '[ %0.3f ] %s'%(aff_score, title)
|
| 126 |
+
if display_title == selected_papers_radio:
|
| 127 |
+
#print('changing paper')
|
| 128 |
+
return title, abstract, aff_score
|
| 129 |
+
else:
|
| 130 |
+
return
|
| 131 |
+
|
| 132 |
with gr.Blocks() as demo:
|
| 133 |
|
| 134 |
### INPUT
|
|
|
|
| 146 |
with gr.Row():
|
| 147 |
compute_btn = gr.Button('Search Similar Papers from the Reviewer')
|
| 148 |
|
| 149 |
+
# show multiple papers in radio check box to select from
|
| 150 |
+
with gr.Row():
|
| 151 |
+
selected_papers_radio = gr.Radio(
|
| 152 |
+
choices=[], # will be udpated with the button click
|
| 153 |
+
visible=False, # also will be updated with the button click
|
| 154 |
+
label='Selected Top Papers from the Reviewer'
|
| 155 |
+
)
|
|
|
|
|
|
|
| 156 |
|
| 157 |
### PAPER INFORMATION
|
| 158 |
+
with gr.Row(visible=False) as title_row:
|
| 159 |
with gr.Column(scale=3):
|
| 160 |
paper_title = gr.Textbox(label='Title', interactive=False)
|
| 161 |
with gr.Column(scale=1):
|
| 162 |
affinity= gr.Number(label='Affinity', interactive=False, value=0)
|
| 163 |
+
with gr.Row(visibe=False) as abstract_row:
|
| 164 |
+
paper_abstract = gr.Textbox(label='Abstract', interactive=False, visible=False)
|
| 165 |
|
| 166 |
with gr.Row(visible=False) as explain_button_row:
|
| 167 |
explain_btn = gr.Button('Show Relevant Parts from Selected Paper')
|
|
|
|
| 186 |
author_id_input
|
| 187 |
],
|
| 188 |
outputs=[
|
| 189 |
+
selected_papers_radio,
|
|
|
|
|
|
|
| 190 |
source_sentences,
|
| 191 |
+
title_row,
|
| 192 |
+
paper_abstract,
|
| 193 |
+
explain_button_row,
|
| 194 |
]
|
| 195 |
)
|
| 196 |
|
|
|
|
| 209 |
inputs=source_sentences,
|
| 210 |
outputs=highlight
|
| 211 |
)
|
| 212 |
+
|
| 213 |
+
selected_papers_radio.change(
|
| 214 |
+
fn=change_paper,
|
| 215 |
+
inputs=selected_papers_radio,
|
| 216 |
+
outputs= [
|
| 217 |
+
paper_title,
|
| 218 |
+
paper_abstract,
|
| 219 |
+
affinity
|
| 220 |
+
]
|
| 221 |
+
)
|
| 222 |
|
| 223 |
if __name__ == "__main__":
|
| 224 |
demo.launch()
|
input_format.py
CHANGED
|
@@ -24,8 +24,6 @@ def get_text_from_url(url, file_path='paper.pdf'):
|
|
| 24 |
"""
|
| 25 |
Get text of the paper from a url
|
| 26 |
"""
|
| 27 |
-
# TODO check for other valid urls (e.g. semantic scholar)
|
| 28 |
-
|
| 29 |
## Check for different URL cases
|
| 30 |
url_parts = urlparse(url)
|
| 31 |
# arxiv
|
|
|
|
| 24 |
"""
|
| 25 |
Get text of the paper from a url
|
| 26 |
"""
|
|
|
|
|
|
|
| 27 |
## Check for different URL cases
|
| 28 |
url_parts = urlparse(url)
|
| 29 |
# arxiv
|