{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/sentimentarcs-a-novel-method-for-self","title":"SentimentArcs: A Novel Method for Self-Supervised Sentiment Analysis of Time Series Shows SOTA Transformers Can Struggle Finding Narrative Arcs","arxiv_id":"2110.09454","date":"2021-10-18","proceeding":null,"authors":["Jon Chun"],"abstract":"SOTA Transformer and DNN short text sentiment classifiers report over 97% accuracy on narrow domains like IMDB movie reviews. Real-world performance is significantly lower because traditional models overfit benchmarks and generalize poorly to different or more open domain texts. This paper introduces SentimentArcs, a new self-supervised time series sentiment analysis methodology that addresses the two main limitations of traditional supervised sentiment analysis: limited labeled training datasets and poor generalization. A large ensemble of diverse models provides a synthetic ground truth for self-supervised learning. Novel metrics jointly optimize an exhaustive search across every possible corpus:model combination. The joint optimization over both the corpus and model solves the generalization problem. Simple visualizations exploit the temporal structure in narratives so domain experts can quickly spot trends, identify key features, and note anomalies over hundreds of arcs and millions of data points. To our knowledge, this is the first self-supervised method for time series sentiment analysis and the largest survey directly comparing real-world model performance on long-form narratives.","url_abs":"https://arxiv.org/abs/2110.09454v1","url_pdf":"https://arxiv.org/pdf/2110.09454v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"sentimentarcs-a-novel-method-for-self","repo_url":"https://github.com/jon-chun/sentimentarcs_notebooks","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"sentiment-analysis","task_name":"Sentiment Analysis"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series","task_name":"Time Series Analysis"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[{"slug":"sentimentarcs-sentiment-reference-corpus-for","name":"SentimentArcs: Sentiment Reference Corpus for Novels","full_name":"SentimentArcs: Sentiment Reference Corpus for Novels"}],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2110.09454","atlas_url":"https://app.syntology.ai/?focus=2110.09454","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.09454"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jon-chun/sentimentarcs_notebooks","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":4},"by_repo_kind":{"official":{"samples":6,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"dfcd02d9db4cff33","entry":"get_ensemble_model_famalies","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/get_model_families.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/get_model_families.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dfcd02d9db4cff33"}},{"code_sha256_prefix":"1021dc822ac0f304","entry":"get_lexsent_sentiment","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/get_sentiments.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/get_sentiments.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1021dc822ac0f304"}},{"code_sha256_prefix":"d018643f8372fc44","entry":"get_fullpath","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/get_fullpath.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/get_fullpath.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d018643f8372fc44"}},{"code_sha256_prefix":"266d8515e74ff5d7","entry":"sent2textblob","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/get_sentiments.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/get_sentiments.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"266d8515e74ff5d7"}},{"code_sha256_prefix":"9a99dfee231a1e7b","entry":"sent2vader_comp","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/get_sentiments.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/get_sentiments.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9a99dfee231a1e7b"}},{"code_sha256_prefix":"aaf6a2e4505bd0e9","entry":"textfile2df","repo":"jon-chun/sentimentarcs_notebooks","repo_kind":"official","path":"utils/file_utils.py","file_url":"https://github.com/jon-chun/sentimentarcs_notebooks/blob/HEAD/utils/file_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aaf6a2e4505bd0e9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}