<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Olga Yasnytska</title>
    <description>The latest articles on DEV Community by Olga Yasnytska (@smoking_girl_d9bf2c97d5f2).</description>
    <link>https://dev.to/smoking_girl_d9bf2c97d5f2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3072827%2Fcdd690d1-1a98-44c6-9cda-47b2cf58041c.jpg</url>
      <title>DEV Community: Olga Yasnytska</title>
      <link>https://dev.to/smoking_girl_d9bf2c97d5f2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/smoking_girl_d9bf2c97d5f2"/>
    <language>en</language>
    <item>
      <title>How I Built LitPulse: A Python Tool for Literary Analysis (With Just a Hint of AI)</title>
      <dc:creator>Olga Yasnytska</dc:creator>
      <pubDate>Mon, 21 Apr 2025 21:25:14 +0000</pubDate>
      <link>https://dev.to/smoking_girl_d9bf2c97d5f2/how-i-built-litpulse-a-python-tool-for-literary-analysis-with-just-a-hint-of-ai-1ak0</link>
      <guid>https://dev.to/smoking_girl_d9bf2c97d5f2/how-i-built-litpulse-a-python-tool-for-literary-analysis-with-just-a-hint-of-ai-1ak0</guid>
      <description>&lt;p&gt;Hi, my name is Olga. I’m a web developer and a writer. I also have a deep love for linguistics, philology, and, of course, literature.&lt;br&gt;
About four years ago, I wrote my first book. The concept was (and still in progress, to be honest) ambitious, but the execution was clumsy and awkward. It was only when I stepped back and reread my own words that I truly realized how much I still had to learn. I devoured every book I could find on the craft of writing, but at some point, they stopped answering the question I was really asking: How does literary text work, and how can I refine my own voice? That nagging question — &lt;em&gt;What’s wrong with my text?&lt;/em&gt; — just wouldn’t leave me alone.&lt;br&gt;
Of course, I understood that plot is one of the timeless pillars of good storytelling. But for me, personally, stories with a strong narrative voice and rich style have always been more meaningful than just a well-structured plot. In a way, I’m an aesthetic purist — and I think that’s the trait that ultimately led me to create LitPulse.&lt;br&gt;
Because writing is just a humble hobby for me, I couldn’t afford professional editors — not even a detailed manuscript critique. I spoke with other indie writers, even worked with a hobbyist editor, but I never quite got the objectivity I was hoping for.&lt;br&gt;
I saw texts that were polished to perfection — and yet they felt hollow, even lifeless. On the other hand, I came across texts that were vibrant and full of rhythm, but riddled with stylistic issues that ultimately ruined the experience. I already knew how important rhythm was, along with tone, register, and literary devices.&lt;br&gt;
But where was the golden mean?&lt;br&gt;
I needed examples. I needed to understand why something worked, and why something else didn’t. But everything kept revolving around subjective taste and individual expertise.&lt;br&gt;
That cursed question — What’s wrong with my writing? — haunted me. You probably know the feeling: everything seems to be in place, and yet… something’s off. That’s exactly where I was stuck.&lt;br&gt;
So I asked myself: &lt;strong&gt;What if I could find that objectivity through code?&lt;/strong&gt; Maybe the elusive magic of style leaves behind a trace — even in cold, printed text.&lt;br&gt;
I’ll spare you the long and boring part — the criteria, the testing, the failures, and the endless loop of adjustments. But I will say this: I quickly lost faith in AI as a precise or dependable tool for this kind of analysis.&lt;br&gt;
Eventually, I had to accept that all I could rely on — for now — was syntax, grammar to some extent, and more trustworthy &lt;strong&gt;NLP&lt;/strong&gt; methods (I chose &lt;strong&gt;spaCy&lt;/strong&gt; as my main toolkit).&lt;br&gt;
I started running dozens of classic and contemporary texts through my system. And over time, I managed to uncover some patterns. I was able to map out literary quality in numbers and charts, to define boundaries — where clichés or complex structures are acceptable, and where they clearly go too far.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshnjdgrrwq7yhcz136bb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fshnjdgrrwq7yhcz136bb.png" alt="Image description" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Through trial and error, I shaped a set of metrics and filters. I abandoned some, shelved others for future work, and refined the ones that proved to be useful. Eventually, those individual parameters began to form a system — one that could evaluate texts based on stylistic consistency, structural and lexical diversity, tonal balance, redundant content, and even genre alignment (via averaged “literary standard” profiles).&lt;br&gt;
One of my earliest discoveries was this: a large vocabulary does not make a text rich or expressive. Often, the opposite is true. Beginner writers (hi, past me!) tend to overdo synonyms. It’s so tempting to dig out a rare or fancy word from a thesaurus and throw it into a sentence, just to impress the reader.&lt;br&gt;
I also found subtle clues left behind by purple prose. To my surprise, the issue wasn’t a surplus of adjectives, but an overuse of adverbs — especially those ending in “-ly”. That became one of the earliest flags in my “purple prose detector.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbvc17wac9wt6xq2iqkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frbvc17wac9wt6xq2iqkv.png" alt="Image description" width="800" height="682"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then came the next big question: Is this even useful to anyone? Is it too technical? Too dry? Will anyone understand what I’m trying to do?&lt;br&gt;
I decided to take the risk.&lt;br&gt;
I launched LitPulse as an internal filter for recommended books on a literary platform I was developing in partnership. It’s a space where indie authors can publish and sell their work — and the number of uploaded texts has grown into the thousands. Plenty of material to test the system.&lt;br&gt;
I wasn’t expecting a wave of attention, but it came — though not quite the way I hoped. Writers complained about bugs, nitpicked the numbers out of context, and took offense at a “cold, heartless algorithm” that supposedly “didn’t understand creativity.” (Some even sent in a professional editor to fact-check me — fortunately, he was kind and constructive.) But there were also people who saw the value in the tool. From them, I received the first real feedback and suggestions. And that’s when I made my decision: LitPulse will keep going — as long as someone finds it useful.&lt;br&gt;
Who is it for?&lt;br&gt;
Editors — for deeper diagnostics. Publishers or contest curators — to sift through large volumes of texts and filter out those that are clearly underdeveloped. (Just to be clear, I’m not claiming this system can replace an editor. But as a first-pass filter, it saves time — and time is priceless.) And of course — it can help beginner writers, too. Not the ones who want shortcuts. But the ones who care about their craft. The ones who want to tell great stories in a way that feels alive.&lt;br&gt;
I'd love to hear your thoughts, suggestions, or even criticism.&lt;br&gt;
Thanks for reading.&lt;/p&gt;

</description>
      <category>python</category>
      <category>nlp</category>
      <category>writing</category>
      <category>literature</category>
    </item>
  </channel>
</rss>
