File size: 2,932 Bytes
dee848c
8ecadd9
8bcebcf
8ecadd9
926f2cd
8ecadd9
b796027
8ecadd9
6783b8c
8ecadd9
 
b796027
 
 
8ecadd9
 
b796027
8ecadd9
 
6783b8c
8ecadd9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b796027
 
 
 
8ecadd9
b796027
6783b8c
b796027
6783b8c
 
bd71cd3
 
 
6783b8c
bd71cd3
 
 
6783b8c
 
 
 
 
8ecadd9
 
 
 
 
 
b796027
 
dee848c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import gradio as gr
from util import summarizer, textproc
from util.examples import entries
      
model_collection = summarizer.init_models()
patent_summarizer = summarizer.PatentSummarizer(model_collection)
iface = gr.Interface(
    patent_summarizer.pipeline,
    theme="huggingface",
    examples=entries,
    examples_per_page=4,
    inputs=[
        gr.inputs.Textbox(label="Patent Information", 
                          placeholder="US9820315B2 or https://patents.google.com/patent/US9820315B2 ...", 
                          lines=1,
                          default="US9820315B2"),
        # gr.inputs.Radio(["Link", "Patent Code"]), # Can be figured out automatically via parsing
        gr.inputs.CheckboxGroup(summarizer.summary_options, 
                                default=summarizer.summary_options,
                                label="Summaries to Generate"),
        gr.inputs.Dropdown(summarizer.model_names,
                           default=summarizer.model_names[3],
                           label="Abstract Model"),
        gr.inputs.Dropdown(summarizer.model_names,
                           default=summarizer.model_names[0],
                           label="Background Model"),
        gr.inputs.Dropdown(summarizer.model_names,
                           default=summarizer.model_names[2],
                           label="Claims Model"),
        gr.inputs.Checkbox(default=True, 
                           label="Collate Claims", 
                           optional=False),
        gr.inputs.Slider(minimum=250,
                         maximum=1000,
                         step=5,
                         default=250,
                         label="Input Document Word Limit"),
    ],
    outputs=[
        gr.outputs.Textbox(label="Abstract Summary"),
        gr.outputs.Textbox(label="Background Summary"),
        gr.outputs.Textbox(label="Sample Claims Summary")
    ],
    title="Patent Summarizer πŸ“–",
    description="""
    v.1.0.0

    Reading through patent documents is oftentimes a long and tedious task. 
    There are cases wherein one has to manually go through several pages 
    in order to determine if the patent is relevant to the prior art search.
    
    This application is meant to automate the initial phase of going through 
    patents so that the potential inventor or researcher may lessen the time 
    spent trying to filter documents.
    
    The Patent Summarizer:
    ✏️ Provides an interface for user input
    πŸ“‚ Retrieves and parses the document based on the given patent information
    πŸ“‘ Returns summaries for the abstract, background, and/or claims.
    
    Models explored:
    - https://huggingface.co/google/bigbird-pegasus-large-bigpatent
    - https://huggingface.co/cnicu/t5-small-booksum
    - https://huggingface.co/sshleifer/distilbart-cnn-6-6
    - https://huggingface.co/google/pegasus-xsum
    """
)

iface.launch()