Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

FullTextKP

Keyphrase Generation Beyond the Boundaries of Title and Abstract

Create environment

conda create -n FKP_env python=3.6
conda activate FKP_env
conda install pytorch cudatoolkit=11.3 -c pytorch
pip install transformers==4.12.0

Run Commands

Preprocess

cd preprocess
# Stage1
python preprocess_ACM_stage1.py
# Stage2
## Title+Abstract
python preprocess_ACM_stage2_v2.py
## Citations
python preprocess_ACM_stage2_v4.py
## Non-Citations
python preprocess_ACM_stage2_v5.py
## Random
python preprocess_ACM_stage2_v6.py

Summarization

Expects processed_data in the main directory, pacssum_models in the summarization folder

Download the pretrained models (into pacssum_models) for BERT using https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing

cd summarization
# Run tfidf summarizer
python run.py --rep tfidf
# Run BERT Summarizer
python run.py --rep bert

Abstractive summarization

cd abstractive_summarization
# Stage1
python abs_sum.py
# Stage2
cd preprocess_abs_sum.py
python preprocess_abs_sum.py

Retrieval Augmentation

cd specter
python preprocess_ACM.py
./embed.sh

Train & Test

# Train
python train.py
# Train on limited data
python train.py --limit=100
# Load Checkpoint
python train.py --checkpoint=True
# Train for multiple runs after the initial run(s)
python train.py --times=3 --initial_time=1
# Test (assuming that saved weights are present)
python train.py --test=True

Citation

Please consider citing our paper if you find this work useful:

@inproceedings{garg-etal-2022-keyphrase,
title = "Keyphrase Generation Beyond the Boundaries of Title and Abstract",
author = "Garg, Krishna and
Ray Chowdhury, Jishnu and
Caragea, Cornelia",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2022",
month = dec,
year = "2022",
address = "Abu Dhabi, United Arab Emirates",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.findings-emnlp.427",
pages = "5809--5821",
abstract = "Keyphrase generation aims at generating important phrases (keyphrases) that best describe a given document. In scholarly domains, current approaches have largely used only the title and abstract of the articles to generate keyphrases. In this paper, we comprehensively explore whether the integration of additional information from the full text of a given article or from semantically similar articles can be helpful for a neural keyphrase generation model or not. We discover that adding sentences from the full text, particularly in the form of the extractive summary of the article can significantly improve the generation of both types of keyphrases that are either present or absent from the text. Experimental results with three widely used models for keyphrase generation along with one of the latest transformer models suitable for longer documents, Longformer Encoder-Decoder (LED) validate the observation. We also present a new large-scale scholarly dataset FullTextKP for keyphrase generation. Unlike prior large-scale datasets, FullTextKP includes the full text of the articles along with the title and abstract. We release the source code at https://github.com/kgarg8/FullTextKP.",
}

Credits

PacSum Repo for Summarization

Specter

FAISS

Questions

Please contact kgarg8@uic.edu for any questions related to this work.

About

Official code for Keyphrase Generation Beyond the Boundaries of Title and Abstract (EMNLP Findings 2022)

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages