All Projects â†’ model-zoo â†’ Shift Ctrl F

model-zoo / Shift Ctrl F

Licence: apache-2.0
🔎 Search the information available on a webpage using natural language instead of an exact string match.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Shift Ctrl F

Gayhub
An awesome chrome extension for github
Stars: ✭ 995 (-2.74%)
Mutual labels:  chrome-extension
Google Unlocked
Google Unlocked browser extension uncensor google search results
Stars: ✭ 1,009 (-1.37%)
Mutual labels:  chrome-extension
Play next
Play Next in YouTube - Chrome Extension
Stars: ✭ 43 (-95.8%)
Mutual labels:  chrome-extension
Sonarrplex
📡 View and manage your shows in Sonarr directly in the Plex app
Stars: ✭ 39 (-96.19%)
Mutual labels:  chrome-extension
Github Gmail
[WebExtension] Open GitHub notifications with shortcuts in Gmail.
Stars: ✭ 998 (-2.44%)
Mutual labels:  chrome-extension
Ieml
IEML semantic language - a meaning-representation system based on semantic primitives and a regular grammar. Basic semantic relationships between concepts are automatically computed from syntactic similarities.
Stars: ✭ 41 (-95.99%)
Mutual labels:  natural-language
Web Extension Starter
🖥🔋Web Extension starter to build "Write Once Run on Any Browser" extension
Stars: ✭ 987 (-3.52%)
Mutual labels:  chrome-extension
Tabsorter2
Google Chrome Tab Management Extension - Merge, Sort, split and more :)
Stars: ✭ 44 (-95.7%)
Mutual labels:  chrome-extension
Toolkit For Ynab
A general purpose YNAB enhancing browser extension for Chrome and Firefox. Have it your way!
Stars: ✭ 1,006 (-1.66%)
Mutual labels:  chrome-extension
Justmytrello
Chrome extension - Filter the cards that are assigned to you on Trello
Stars: ✭ 42 (-95.89%)
Mutual labels:  chrome-extension
Firephp For Browser Devtools
FirePHP for Browser Developer Tools (Web Extension)
Stars: ✭ 39 (-96.19%)
Mutual labels:  chrome-extension
Essentialnowplaying
A now playing tool intended to be used with OBS.
Stars: ✭ 40 (-96.09%)
Mutual labels:  chrome-extension
Github Review Filter
Chrome extension to filter files in GitHub code review using glob
Stars: ✭ 42 (-95.89%)
Mutual labels:  chrome-extension
Chrome Medium Unlimited Reading
Chrome extension to remove Medium.com member-only article read limit. https://chrome.google.com/webstore/detail/mediumcom-unlimited-readi/keckgflodjmhejpbhfbfoioonoeeckng
Stars: ✭ 39 (-96.19%)
Mutual labels:  chrome-extension
Chrome Notifier
Google Chrome extension for PagerDuty desktop notifications.
Stars: ✭ 43 (-95.8%)
Mutual labels:  chrome-extension
Coursera Natural Language Processing Specialization
Programming assignments from all courses in the Coursera Natural Language Processing Specialization offered by deeplearning.ai.
Stars: ✭ 39 (-96.19%)
Mutual labels:  natural-language
Data Selfie
Data Selfie - a browser extension to track yourself on Facebook and analyze your data.
Stars: ✭ 1,009 (-1.37%)
Mutual labels:  chrome-extension
Chrome Options
Options page for Chrome extensions
Stars: ✭ 44 (-95.7%)
Mutual labels:  chrome-extension
Jsonview
A web extension that helps you view JSON documents in the browser.
Stars: ✭ 1,021 (-0.2%)
Mutual labels:  chrome-extension
Ludwig
Data-centric declarative deep learning framework
Stars: ✭ 8,018 (+683.77%)
Mutual labels:  natural-language

Shift-Ctrl-F: Semantic Search for the Browser

Shift-Ctrl-F

License

Chrome Web Store Link

Search the information available on a webpage using natural language instead of an exact string match. Uses MobileBERT fine-tuned on SQuAD via TensorFlowJS to search for answers and mark relevant elements on the web page.

Shift-Ctrl-F Demo

This extension is an experiment. Deep learning models like BERT are powerful but may return unpredictable and/or biased results that are tough to interpret. Please apply best judgement when analyzing search results.

Why?

Ctrl-F uses exact string-matching to find information within a webpage. String match is inherently a proxy heuristic for the true content -- in most cases it works very well, but in some cases it can be a bad proxy.

In our example above we search https://stripe.com/docs/testing, aiming to understand the difference between test mode and live mode. With string matching, you might search through some relevant phrases "live mode", "test mode", and/or "difference" and scan through results. With semantic search, you can directly phrase your question "What is the difference between live mode and test mode?". We see that the model returns a relevant result, even though the page does not contain the term "difference".

How It Works

Every time a user executes a search:

  1. The content script collects all <p>, <ul>, and <ol> elements on the page and extracts text from each.
  2. The background script executes the question-answering model on every element, using the query as the question and the element's text as the context.
  3. If a match is returned by the model, it is highlighted within the page along with the confidence score returned by the model.

Architecture

There are three main components that interact via Message Passing to orchestrate the extension:

  1. Popup (popup.js): React application that renders the search bar, controls searching and iterating through the results.
  2. Content Script (content.js): Runs in the context of the current tab, responsible for reading from and manipulating the DOM.
  3. Background (background.js): Background script that loads and executes the TensorFlowJS model on question-context pairs.

src/js/message_types.js contains the messages used to interact between these three components.

Development

Make sure you have these dependencies installed.

  1. Node
  2. Yarn
  3. Prettier

Then run:

make develop

The unpacked extension will be placed inside of build/. See Google Chrome Extension developer documentation to load the unpacked extension into your Chrome browser in development mode.

Publishing

make build

A zipped extension file ready for upload will be placed inside of dist/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].