Skip to content

Commit dad4ce0

Browse files
author
Vivek Dagar
authored
Update README.md
1 parent 92b6fd9 commit dad4ce0

File tree

1 file changed

+101
-58
lines changed

1 file changed

+101
-58
lines changed

README.md

Lines changed: 101 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,122 @@
1-
<div align='center'>
21

2+
# pyquantify
33

4-
<h1>pyquantify</h1>
5-
<p>Pyquantify is a powerful CLI tool for semantic analysis. It leverages natural language processing to unveil insights from text, files, or websites, empowering sophisticated data visualization and exploration.</p>
4+
Pyquantify is a powerful CLI tool for semantic analysis. It leverages natural language processing to unveil insights from text, files, or websites, empowering sophisticated data visualization and exploration.
65

7-
<h4> <a href="https://github.com/vivekkdagar/pyquantify/issues"> Report Bug </a> <span> · </span> <a href="https://github.com/vivekkdagar/pyquantify/issues"> Request Feature </a> </h4>
86

7+
## Badges
98

10-
</div>
11-
12-
# :notebook_with_decorative_cover: Table of Contents
9+
![Pyquantify Version](https://img.shields.io/badge/PyQuantify-1.2.0-brightgreen)
1310

14-
- [:camera: Demo screenshot](#srn)
15-
- [:dart: Features](#feat)
16-
- [:toolbox: Getting Started](#strt)
17-
- [:toolbox: Installation](#insta)
18-
- [:book: Usage Guide](#use)
19-
- [:grey_question: FAQ](#ques)
20-
- [:gem: Acknowledgements](#ack)
11+
[![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)](https://opensource.org/licenses/)
2112

13+
[![Python 3](https://img.shields.io/badge/Python-3-brightgreen)](https://www.python.org/)
2214

15+
## Demo
2316

24-
<h2><a id="srn"> :camera:</a> Demo screenshot</h2>
25-
<div align="center"> <a href=""><img src="https://github.com/vivekkdagar/pyquantify/blob/main/sample-output/demo.png" alt='image' width='800'/></a> </div>
17+
<img src="https://github.com/vivekkdagar/pyquantify/blob/main/assets/screenshots/menu.png">
2618

2719

28-
<h2><a id="feat">:dart:</a> Features</h2>
20+
## Features
2921

30-
1. **Data Loading**: Load text data from raw input, files, or websites with interactive prompts for user input.
22+
1. **Text Summarization**:
23+
- Utilizes the BERT model for summarizing text.
24+
- Provides caching functionality to speed up summarization for previously processed text.
25+
- Supports exporting summaries to text files.
3126

32-
2. **Metrics Generation**: Calculate and display key metrics, including character count (with and without spaces), sentence count, word count, and paragraph count.
27+
2. **Text Analysis**:
28+
- Preprocesses text data including tokenization and part-of-speech tagging.
29+
- Generates various metrics such as character count, word count, sentence count, etc.
30+
- Analyzes morphological data including lemmatized forms, part-of-speech tags, and word frequencies.
31+
- Performs sentiment analysis using the TextBlob library.
32+
- Visualizes data through word clouds and word frequency charts.
3333

34-
3. **Morphological Analysis**: Generate a detailed table of word morphology, including word rank, original form, lemmatized form, part-of-speech (POS) tag, percentage occurrence, and count.
34+
3. **Text Processing**:
35+
- Offers functionality for cleaning and preprocessing text data.
36+
- Implements functions for generating word clouds and word frequency charts.
37+
- Calculates cosine similarity between two texts.
3538

36-
4. **Export Functionality**: Optionally export generated metrics, frequency tables, and visualizations to files.
39+
4. **Data Loading and Exporting**:
40+
- Supports loading text data from raw input, files, or websites.
41+
- Provides export functionality for analyzed data, summaries, sentiment analysis results, and keywords extracted from text.
3742

38-
5. **Visualization**:
39-
- Generate and visualize the frequency of the top 20 words in the text.
40-
- Create and display a word cloud visualization of processed text data.
43+
5. **CLI Interface**:
44+
- Implements a command-line interface (CLI) using Click library.
45+
- Offers commands for various text analysis and summarization tasks, including data visualization and sentiment analysis.
46+
- Provides options for specifying data loading mode and exporting analysis results.
4147

42-
6. **Interactive Commands**: Utilize command-line interface commands for actions like displaying metrics, limiting results, searching for specific words, and generating visualizations.
48+
6. **Parallel Processing**: Utilizes multiprocessing and concurrent.futures for parallel processing of tasks, improving performance for tasks like sentiment analysis and summarization.
4349

44-
7. **Summarize Text**: Summarize text using a BERT Extractive Summarizer.
50+
7. **Unit Testing**:
51+
- Includes unit tests for different modules and functionalities using the `unittest` framework.
52+
- Uses mocking to isolate and test individual components such as data loading, summarization, and exporting.
4553

46-
8. **Sentiment Analysis**:
47-
- Perform sentiment analysis on the text.
48-
- Provides insights into sentiment polarity and subjectivity.
54+
8. **Exception Handling and Error Reporting**:
55+
- Handles exceptions gracefully and provides informative error messages.
56+
- Reports errors such as unsupported operating systems, file not found, and invalid input modes.
57+
## Installation
4958

59+
#### Install pyquantify with pip
5060

51-
<h2><a id="strt"> :toolbox:</a> Getting Started</h2>
61+
```bash
62+
pip install pyquantify
63+
```
64+
65+
#### or you can build locally
5266

53-
### :bangbang: Prerequisites
67+
Clone the project
5468

55-
Ensure you meet the following requirements before installation (if you're building from source):
69+
```bash
70+
git clone https://github.com/vivekkdagar/pyquantify.git
71+
```
72+
73+
Go to the project directory
5674

5775
```bash
58-
pip install -r requirements.txt
76+
cd pyquantify
5977
```
6078

61-
<h2><a id="insta"> :toolbox:</a> Installation</h2>
79+
Build the package:
6280

63-
<h3><a id="pypi"> Install from PyPI</a></h3>
81+
```bash
82+
python3 -m build
83+
```
6484

65-
You can install the `pyquantify` package directly from PyPI using the following command:
85+
Install the package:
6686

6787
```bash
68-
pip install pyquantify
88+
pip install dist/*gz
6989
```
7090

71-
<h3><a id="src"> Build from Source</a></h3>
7291

73-
1. Clone the project:
92+
## Before running pyquantify
93+
94+
Clone the project
7495

7596
```bash
76-
git clone <repository_url>
77-
cd pyquantify
97+
git clone https://github.com/vivekkdagar/pyquantify.git
7898
```
7999

80-
2. Build the package:
100+
Go to the project directory
81101

82102
```bash
83-
python3 -m build
103+
cd pyquantify
84104
```
85105

86-
3. Install the package:
106+
Run the script nltk_datasets.py in scripts directory
87107

88108
```bash
89-
pip install dist/*gz
109+
python3 nltk_datasets.py
90110
```
91111

92-
4. Run the tool in terminal:
112+
Download dataset for spacy
93113

94114
```bash
95-
pyquantify
115+
python3 -m spacy download en_core_web_sm
96116
```
97-
<h2><a id="use"> :book: Usage Guide</a></h3>
117+
118+
119+
## Usage/Examples
98120

99121
Pyquantify provides several commands for analyzing and visualizing text data. Below is a guide on how to use the key functionalities:
100122

@@ -154,23 +176,41 @@ Pyquantify provides several commands for analyzing and visualizing text data. Be
154176

155177
- `--mode`: Specify the data loading mode (raw input, file, or website).
156178
- `--export`: Optional flag to export the summary to a file.
157-
158-
### Additional Commands
159179

160-
- View the Pyquantify GitHub page:
180+
7. **View the pyquantify git page**
181+
161182
```bash
162-
pyquantify --git
183+
pyquantify git
163184
```
164185

186+
8. **Extract keywords from the data**
187+
188+
```bash
189+
pyquantify keywords --mode [raw/file/website] --export
190+
```
191+
192+
1. --mode: Specify the data loading mode (raw input, file, or website).
193+
2. --export: Optional flag to export the extracted keywords to a file.
194+
195+
196+
9. **Calculate Cosine Similarity:**
197+
198+
```bash
199+
pyquantify similarity --mode [raw/file/website] --other [raw/file/website]
200+
```
201+
202+
- `--mode`: Specify the data loading mode for the first text (raw input, file, or website).
203+
- `--other`: Specify the data loading mode for the second text (raw input, file, or website).
204+
165205
Feel free to explore additional options and functionalities by checking the help documentation for each command:
166206

167207
```bash
168208
pyquantify [command] --help
169209
```
170-
</div>
171210

172211

173-
<h2><a id="ques">:grey_question: FAQ</a></h2>
212+
## FAQ
213+
174214

175215
### Q: What is Pyquantify?
176216

@@ -187,12 +227,15 @@ Originally conceived as a word frequency counter, Pyquantify's development took
187227
### Q: Why the name change from NLPFreq to Pyquantify?
188228

189229
NLPFreq felt limiting and didn't capture the full scope of the project. Pyquantify more accurately reflects its capabilities as a Python-based tool for quantitative data analysis.
230+
## Screenshots
190231

232+
![App Screenshot](https://via.placeholder.com/468x300?text=App+Screenshot+Here)
191233

192-
<h2> <a id = "ack">:gem: Acknowledgements</a></h2>
193234

194-
- [NeuralNine's Publish Your Own Python Package](https://www.youtube.com/watch?v=tEFkHEKypLI)
235+
## Acknowledgements
195236

196-
<hr/>
237+
- [Awesome Readme Templates](https://awesomeopensource.com/project/elangosundar/awesome-README-templates)
238+
- [Awesome README](https://github.com/matiassingers/awesome-readme)
239+
- [How to write a Good readme](https://bulldogjob.com/news/449-how-to-write-a-good-readme-for-your-github-project)
197240

198-
**Note:** Pyquantify has undergone thorough testing on Linux, and its functionality is confirmed to work seamlessly. However, it's important to note that when running on Windows Subsystem for Linux (WSL), certain features may have limited functionality due to the absence of the complete Linux toolset in the WSL environment.
241+
- [NeuralNine's Publish Your Own Python Package](https://www.youtube.com/watch?v=tEFkHEKypLI)

0 commit comments

Comments
 (0)