text-summarizer-aweebtaku 1.2.4__py3-none-any.whl → 1.2.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Aditya Chaurasiya
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aditya Chaurasiya
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.
@@ -1,207 +1,206 @@
1
- Metadata-Version: 2.4
2
- Name: text-summarizer-aweebtaku
3
- Version: 1.2.4
4
- Summary: A text summarization tool using GloVe embeddings and PageRank algorithm
5
- Home-page: https://github.com/AWeebTaku/Summarizer
6
- Author: Aditya Chaurasiya
7
- Author-email: adityachaurasiya57527@gmail.com
8
- License: MIT
9
- Classifier: Development Status :: 4 - Beta
10
- Classifier: Intended Audience :: Developers
11
- Classifier: Operating System :: OS Independent
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Requires-Python: >=3.8
18
- Description-Content-Type: text/markdown
19
- License-File: LICENSE
20
- Requires-Dist: pandas
21
- Requires-Dist: numpy
22
- Requires-Dist: nltk
23
- Requires-Dist: scikit-learn
24
- Requires-Dist: networkx
25
- Requires-Dist: requests
26
- Dynamic: author
27
- Dynamic: author-email
28
- Dynamic: classifier
29
- Dynamic: description
30
- Dynamic: description-content-type
31
- Dynamic: home-page
32
- Dynamic: license
33
- Dynamic: license-file
34
- Dynamic: requires-dist
35
- Dynamic: requires-python
36
- Dynamic: summary
37
-
38
- # Text Summarizer
39
-
40
- A Python-based text summarization tool that uses GloVe word embeddings and PageRank algorithm to generate extractive summaries of documents.
41
-
42
- ## Features
43
-
44
- - **Extractive Summarization**: Uses sentence similarity and PageRank to identify the most important sentences
45
- - **GloVe Embeddings**: Leverages pre-trained GloVe word vectors for semantic similarity calculation
46
- - **Multiple Input Methods**: Support for single documents, CSV files, or interactive creation
47
- - **GUI Interface**: User-friendly Tkinter-based graphical interface
48
- - **Command Line Interface**: Scriptable command-line tool for automation
49
- - **Batch Processing**: Process multiple documents at once
50
-
51
- ## Installation
52
-
53
- ### Prerequisites
54
-
55
- - Python 3.8 or higher
56
- - Required packages (automatically installed): pandas, numpy, nltk, scikit-learn, networkx
57
-
58
- ### Install from PyPI
59
-
60
- ```bash
61
- pip install text-summarizer-aweebtaku
62
- ```
63
-
64
- ### Install from Source
65
-
66
- 1. Clone the repository:
67
- ```bash
68
- git clone https://github.com/AWeebTaku/Summarizer.git
69
- cd Summarizer
70
- ```
71
-
72
- 2. Install the package:
73
- ```bash
74
- pip install -e .
75
- ```
76
-
77
- ### Create Desktop Shortcuts (Windows)
78
-
79
- After installation, create desktop shortcuts for easy access:
80
-
81
- **Option 1: Automatic (Recommended)**
82
- ```bash
83
- text-summarizer-shortcuts
84
- ```
85
- This will create desktop shortcuts for both GUI and CLI versions.
86
-
87
- **Option 2: Manual**
88
- Run the included batch file:
89
- ```cmd
90
- create_shortcuts.bat
91
- ```
92
-
93
- ### Download GloVe Embeddings
94
-
95
- **No manual download required!** The package will automatically download GloVe embeddings (100d, ~400MB) on first use and cache them in your home directory (`~/.text_summarizer/`).
96
-
97
- If you prefer to use your own GloVe file, you can specify the path:
98
- ```python
99
- summarizer = TextSummarizer(glove_path='path/to/your/glove.6B.100d.txt')
100
- ```
101
-
102
- ## Usage
103
-
104
- ### Console Scripts
105
-
106
- After installation, you can use these commands from anywhere:
107
-
108
- ```bash
109
- # Launch the graphical user interface
110
- text-summarizer-gui
111
-
112
- # Use the command line interface
113
- text-summarizer-aweebtaku --help
114
-
115
- # Create desktop shortcuts (Windows only)
116
- text-summarizer-shortcuts
117
- ```
118
-
119
- ### Command Line Interface
120
-
121
- ```bash
122
- # Summarize a CSV file
123
- text-summarizer-aweebtaku --csv-file data/tennis.csv --article-id 1
124
-
125
- # Interactive mode
126
- text-summarizer-aweebtaku
127
- ```
128
-
129
- ### Graphical User Interface
130
-
131
- ```bash
132
- # Launch GUI (easiest way)
133
- text-summarizer-aweebtaku --gui
134
-
135
- # Or use the dedicated GUI command
136
- text-summarizer-gui
137
- ```
138
-
139
- ### Python API
140
-
141
- ```python
142
- from text_summarizer import TextSummarizer
143
-
144
- # Initialize summarizer (automatic GloVe download)
145
- summarizer = TextSummarizer(num_sentences=3)
146
-
147
- # Simple text summarization
148
- text = "Your long text here..."
149
- summary = summarizer.summarize_text(text)
150
- print(summary)
151
-
152
- # Advanced usage with DataFrame
153
- import pandas as pd
154
- df = pd.DataFrame([{'article_id': 1, 'article_text': text}])
155
- scored_sentences = summarizer.run_summarization(df)
156
- article_text, summary = summarizer.summarize_article(scored_sentences, 1, df)
157
- ```
158
-
159
- ## Data Format
160
-
161
- Input data should be in CSV format with columns:
162
- - `article_id`: Unique identifier for each document
163
- - `article_text`: The full text of the document
164
-
165
- Example:
166
- ```csv
167
- article_id,article_text
168
- 1,"This is the first article. It contains multiple sentences..."
169
- 2,"This is the second article. It also has several sentences..."
170
- ```
171
-
172
- ## Algorithm
173
-
174
- The summarization process follows these steps:
175
-
176
- 1. **Sentence Tokenization**: Split documents into individual sentences
177
- 2. **Text Cleaning**: Remove punctuation, convert to lowercase, remove stopwords
178
- 3. **Sentence Vectorization**: Convert sentences to vectors using GloVe embeddings
179
- 4. **Similarity Calculation**: Compute cosine similarity between all sentence pairs
180
- 5. **PageRank Scoring**: Apply PageRank algorithm to identify important sentences
181
- 6. **Summary Extraction**: Select top-ranked sentences in original order
182
-
183
- ## Configuration
184
-
185
- - `glove_path`: Path to GloVe embeddings file (default: 'glove.6B.100d.txt/glove.6B.100d.txt')
186
- - `num_sentences`: Number of sentences in summary (default: 5)
187
-
188
- ## License
189
-
190
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
191
-
192
- ## Contributing
193
-
194
- Contributions are welcome! Please feel free to submit a Pull Request.
195
-
196
- ## Citation
197
-
198
- If you use this tool in your research, please cite:
199
-
200
- ```
201
- @software{text_summarizer,
202
- title = {Text Summarizer},
203
- author = {Aditya Chaurasiya},
204
- url = {https://github.com/AWeebTaku/Summarizer},
205
- year = {2026}
206
- }
207
- ```
1
+ Metadata-Version: 2.1
2
+ Name: text-summarizer-aweebtaku
3
+ Version: 1.2.6
4
+ Summary: A text summarization tool using GloVe embeddings and PageRank algorithm
5
+ Home-page: https://github.com/AWeebTaku/Summarizer
6
+ Author: Aditya Chaurasiya
7
+ Author-email: adityachaurasiya57527@gmail.com
8
+ License: MIT
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: pandas >=1.3.0
21
+ Requires-Dist: numpy >=1.21.0
22
+ Requires-Dist: nltk >=3.6
23
+ Requires-Dist: scikit-learn >=1.0
24
+ Requires-Dist: networkx >=2.6
25
+ Requires-Dist: requests >=2.25.0
26
+
27
+ # Text Summarizer
28
+
29
+ A Python-based text summarization tool that uses GloVe word embeddings and PageRank algorithm to generate extractive summaries of documents.
30
+
31
+ ## Features
32
+
33
+ - **Extractive Summarization**: Uses sentence similarity and PageRank to identify the most important sentences
34
+ - **GloVe Embeddings**: Leverages pre-trained GloVe word vectors for semantic similarity calculation
35
+ - **Multiple Input Methods**: Support for single documents, CSV files, or interactive creation
36
+ - **GUI Interface**: User-friendly Tkinter-based graphical interface
37
+ - **Command Line Interface**: Scriptable command-line tool for automation
38
+ - **Batch Processing**: Process multiple documents at once
39
+
40
+ ## Installation
41
+
42
+ ### Prerequisites
43
+
44
+ - Python 3.8 or higher
45
+ - Required packages (automatically installed): pandas, numpy, nltk, scikit-learn, networkx
46
+
47
+ ### Install from PyPI
48
+
49
+ ```bash
50
+ pip install text-summarizer-aweebtaku
51
+ ```
52
+
53
+ ### Install from Source
54
+
55
+ 1. Clone the repository:
56
+ ```bash
57
+ git clone https://github.com/AWeebTaku/Summarizer.git
58
+ cd Summarizer
59
+ ```
60
+
61
+ 2. Install the package:
62
+ ```bash
63
+ pip install -e .
64
+ ```
65
+
66
+ ### Upgrade Package
67
+
68
+ To upgrade to the latest version with new features:
69
+ ```bash
70
+ pip install --upgrade text-summarizer-aweebtaku
71
+ ```
72
+
73
+ ### Create Desktop Shortcuts (Windows)
74
+
75
+ After installation, create desktop shortcuts for easy access:
76
+
77
+ **Option 1: Automatic (Recommended)**
78
+ ```bash
79
+ text-summarizer-shortcuts
80
+ ```
81
+ This will create desktop shortcuts for both GUI and CLI versions.
82
+
83
+ **Option 2: Manual**
84
+ Run the included batch file:
85
+ ```cmd
86
+ create_shortcuts.bat
87
+ ```
88
+
89
+ ### Download GloVe Embeddings
90
+
91
+ **No manual download required!** The package will automatically download GloVe embeddings (100d, ~400MB) on first use and cache them in your home directory (`~/.text_summarizer/`).
92
+
93
+ If you prefer to use your own GloVe file, you can specify the path:
94
+ ```python
95
+ summarizer = TextSummarizer(glove_path='path/to/your/glove.6B.100d.txt')
96
+ ```
97
+
98
+ ## Usage
99
+
100
+ ### Console Scripts
101
+
102
+ After installation, you can use these commands from anywhere:
103
+
104
+ ```bash
105
+ # Upgrade to the latest version
106
+ pip install --upgrade text-summarizer-aweebtaku
107
+
108
+ # Launch the graphical user interface
109
+ text-summarizer-gui
110
+
111
+ # Use the command line interface
112
+ text-summarizer-aweebtaku --help
113
+
114
+ # Create desktop shortcuts (Windows only)
115
+ text-summarizer-shortcuts
116
+ ```
117
+
118
+ ### Command Line Interface
119
+
120
+ ```bash
121
+ # Summarize a CSV file
122
+ text-summarizer-aweebtaku --csv-file data/tennis.csv --article-id 1
123
+
124
+ # Interactive mode
125
+ text-summarizer-aweebtaku
126
+ ```
127
+
128
+ ### Graphical User Interface
129
+
130
+ ```bash
131
+ # Launch GUI (easiest way)
132
+ text-summarizer-aweebtaku --gui
133
+
134
+ # Or use the dedicated GUI command
135
+ text-summarizer-gui
136
+ ```
137
+
138
+ ### Python API
139
+
140
+ ```python
141
+ from text_summarizer import TextSummarizer
142
+
143
+ # Initialize summarizer (automatic GloVe download)
144
+ summarizer = TextSummarizer(num_sentences=3)
145
+
146
+ # Simple text summarization
147
+ text = "Your long text here..."
148
+ summary = summarizer.summarize_text(text)
149
+ print(summary)
150
+
151
+ # Advanced usage with DataFrame
152
+ import pandas as pd
153
+ df = pd.DataFrame([{'article_id': 1, 'article_text': text}])
154
+ scored_sentences = summarizer.run_summarization(df)
155
+ article_text, summary = summarizer.summarize_article(scored_sentences, 1, df)
156
+ ```
157
+
158
+ ## Data Format
159
+
160
+ Input data should be in CSV format with columns:
161
+ - `article_id`: Unique identifier for each document
162
+ - `article_text`: The full text of the document
163
+
164
+ Example:
165
+ ```csv
166
+ article_id,article_text
167
+ 1,"This is the first article. It contains multiple sentences..."
168
+ 2,"This is the second article. It also has several sentences..."
169
+ ```
170
+
171
+ ## Algorithm
172
+
173
+ The summarization process follows these steps:
174
+
175
+ 1. **Sentence Tokenization**: Split documents into individual sentences
176
+ 2. **Text Cleaning**: Remove punctuation, convert to lowercase, remove stopwords
177
+ 3. **Sentence Vectorization**: Convert sentences to vectors using GloVe embeddings
178
+ 4. **Similarity Calculation**: Compute cosine similarity between all sentence pairs
179
+ 5. **PageRank Scoring**: Apply PageRank algorithm to identify important sentences
180
+ 6. **Summary Extraction**: Select top-ranked sentences in original order
181
+
182
+ ## Configuration
183
+
184
+ - `glove_path`: Path to GloVe embeddings file (default: 'glove.6B.100d.txt/glove.6B.100d.txt')
185
+ - `num_sentences`: Number of sentences in summary (default: 5)
186
+
187
+ ## License
188
+
189
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
190
+
191
+ ## Contributing
192
+
193
+ Contributions are welcome! Please feel free to submit a Pull Request.
194
+
195
+ ## Citation
196
+
197
+ If you use this tool in your research, please cite:
198
+
199
+ ```
200
+ @software{text_summarizer,
201
+ title = {Text Summarizer},
202
+ author = {Aditya Chaurasiya},
203
+ url = {https://github.com/AWeebTaku/Summarizer},
204
+ year = {2026}
205
+ }
206
+ ```
@@ -0,0 +1,12 @@
1
+ text_summarizer/__init__.py,sha256=cdOSpTQ9qiJFujOZJkFAOMt79Qe08VLyCh1HGmBifwU,61
2
+ text_summarizer/cli.py,sha256=Hige226G4cB7H7uG6OeS5uzLoy0M4wwd3FegOfOGsmI,3560
3
+ text_summarizer/create_shortcuts.py,sha256=WD9Y2igPt61DNC0YnZY5TVoYH69d3TtYyu1QF1WYQew,2373
4
+ text_summarizer/summarizer.py,sha256=-hzSRc4-UDLfC3mSpzQf1QUiBJg_DQvYBcl2tSfvrw4,12411
5
+ text_summarizer/ui.py,sha256=KV0U3qhpZKSuhLX1O_8VwxGsC1vU7GJ9JSZgNFqHOIo,16259
6
+ text_summarizer/data/__init__.py,sha256=keVAOKSXlHFknU6dXsWGV_4Vx8RKEyUdY76PK05_4Ug,34
7
+ text_summarizer_aweebtaku-1.2.6.dist-info/LICENSE,sha256=OEAJI-Gnl8_VH7hNIUTS50ttChEHX3MpJRKVFJyFU9Q,1073
8
+ text_summarizer_aweebtaku-1.2.6.dist-info/METADATA,sha256=8rgzZY2DDb-TukAwxnau-Gnpr4gdhgAhuvJNqGcglIk,5598
9
+ text_summarizer_aweebtaku-1.2.6.dist-info/WHEEL,sha256=WnJ8fYhv8N4SYVK2lLYNI6N0kVATA7b0piVUNvqIIJE,91
10
+ text_summarizer_aweebtaku-1.2.6.dist-info/entry_points.txt,sha256=jOt-WcgMjgjfoD1cvbYoPExPiyIbLn49Gh-A5OEgugw,195
11
+ text_summarizer_aweebtaku-1.2.6.dist-info/top_level.txt,sha256=2s-4Uyii86k2iEeiIi0JghAXW47cEQ8qM_ONYPs9Gh8,16
12
+ text_summarizer_aweebtaku-1.2.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.10.2)
2
+ Generator: setuptools (75.3.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,9 +0,0 @@
1
- article_id,article_text
2
- 1,"Maria Sharapova has basically no friends as tennis players on the WTA Tour. The Russian player has no problems in openly speaking about it and in a recent interview she said: 'I don't really hide any feelings too much. I think everyone knows this is my job here. When I'm on the courts or when I'm on the court playing, I'm a competitor and I want to beat every single person whether they're in the locker room or across the net.So I'm not the one to strike up a conversation about the weather and know that in the next few minutes I have to go and try to win a tennis match. I'm a pretty competitive girl. I say my hellos, but I'm not sending any players flowers as well. Uhm, I'm not really friendly or close to many players. I have not a lot of friends away from the courts.' When she said she is not really close to a lot of players, is that something strategic that she is doing? Is it different on the men's tour than the women's tour? 'No, not at all. I think just because you're in the same sport doesn't mean that you have to be friends with everyone just because you're categorized, you're a tennis player, so you're going to get along with tennis players. I think every person has different interests. I have friends that have completely different jobs and interests, and I've met them in very different parts of my life. I think everyone just thinks because we're tennis players we should be the greatest of friends. But ultimately tennis is just a very small part of what we do. There are so many other things that we're interested in, that we do.'"
3
- 2,"BASEL, Switzerland (AP), Roger Federer advanced to the 14th Swiss Indoors final of his career by beating seventh-seeded Daniil Medvedev 6-1, 6-4 on Saturday. Seeking a ninth title at his hometown event, and a 99th overall, Federer will play 93th-ranked Marius Copil on Sunday. Federer dominated the 20th-ranked Medvedev and had his first match-point chance to break serve again at 5-1. He then dropped his serve to love, and let another match point slip in Medvedev's next service game by netting a backhand. He clinched on his fourth chance when Medvedev netted from the baseline. Copil upset expectations of a Federer final against Alexander Zverev in a 6-3, 6-7 (6), 6-4 win over the fifth-ranked German in the earlier semifinal. The Romanian aims for a first title after arriving at Basel without a career win over a top-10 opponent. Copil has two after also beating No. 6 Marin Cilic in the second round. Copil fired 26 aces past Zverev and never dropped serve, clinching after 2 1/2 hours with a forehand volley winner to break Zverev for the second time in the semifinal. He came through two rounds of qualifying last weekend to reach the Basel main draw, including beating Zverev's older brother, Mischa. Federer had an easier time than in his only previous match against Medvedev, a three-setter at Shanghai two weeks ago."
4
- 3,"Roger Federer has revealed that organisers of the re-launched and condensed Davis Cup gave him three days to decide if he would commit to the controversial competition. Speaking at the Swiss Indoors tournament where he will play in Sundays final against Romanian qualifier Marius Copil, the world number three said that given the impossibly short time frame to make a decision, he opted out of any commitment. ""They only left me three days to decide"", Federer said. ""I didn't to have time to consult with all the people I had to consult. ""I could not make a decision in that time, so I told them to do what they wanted."" The 20-time Grand Slam champion has voiced doubts about the wisdom of the one-week format to be introduced by organisers Kosmos, who have promised the International Tennis Federation up to $3 billion in prize money over the next quarter-century. The competition is set to feature 18 countries in the November 18-24 finals in Madrid next year, and will replace the classic home-and-away ties played four times per year for decades. Kosmos is headed by Barcelona footballer Gerard Pique, who is hoping fellow Spaniard Rafael Nadal will play in the upcoming event. Novak Djokovic has said he will give precedence to the ATP's intended re-launch of the defunct World Team Cup in January 2020, at various Australian venues. Major players feel that a big event in late November combined with one in January before the Australian Open will mean too much tennis and too little rest. Federer said earlier this month in Shanghai in that his chances of playing the Davis Cup were all but non-existent. ""I highly doubt it, of course. We will see what happens,"" he said. ""I do not think this was designed for me, anyhow. This was designed for the future generation of players."" Argentina and Britain received wild cards to the new-look event, and will compete along with the four 2018 semi-finalists and the 12 teams who win qualifying rounds next February. ""I don't like being under that kind of pressure,"" Federer said of the deadline Kosmos handed him."
5
- 4,"Kei Nishikori will try to end his long losing streak in ATP finals and Kevin Anderson will go for his second title of the year at the Erste Bank Open on Sunday. The fifth-seeded Nishikori reached his third final of 2018 after beating Mikhail Kukushkin of Kazakhstan 6-4, 6-3 in the semifinals. A winner of 11 ATP events, Nishikori hasn't triumphed since winning in Memphis in February 2016. He has lost eight straight finals since. The second-seeded Anderson defeated Fernando Verdasco 6-3, 3-6, 6-4. Anderson has a shot at a fifth career title and second of the year after winning in New York in February. Nishikori leads Anderson 4-2 on career matchups, but the South African won their only previous meeting this year. With a victory on Sunday, Anderson will qualify for the ATP Finals. Currently in ninth place, Nishikori with a win could move to within 125 points of the cut for the eight-man event in London next month. Nishikori held serve throughout against Kukushkin, who came through qualifying. He used his first break point to close out the first set before going up 3-0 in the second and wrapping up the win on his first match point. Against Verdasco, Anderson hit nine of his 19 aces in the opening set. The Spaniard broke Anderson twice in the second but didn't get another chance on the South African's serve in the final set."
6
- 5,"Federer, 37, first broke through on tour over two decades ago and he has since gone on to enjoy a glittering career. The 20-time Grand Slam winner is chasing his 99th ATP title at the Swiss Indoors this week and he faces Jan-Lennard Struff in the second round on Thursday (6pm BST). Davenport enjoyed most of her success in the late 1990s and her third and final major tournament win came at the 2000 Australian Open. But she claims the mentality of professional tennis players slowly began to change after the new millennium. ""It seems pretty friendly right now,"" said Davenport. ""I think there is a really nice environment and a great atmosphere, especially between some of the veteran players helping some of the younger players out. ""It's a very pleasant atmosphere, I'd have to say, around the locker rooms. ""I felt like the best weeks that I had to get to know players when I was playing were the Fed Cup weeks or the Olympic weeks, not necessarily during the tournaments. ""And even though maybe we had smaller teams, I still think we kept to ourselves quite a bit. ""Not always, but I really feel like in the mid-2000 years there was a huge shift of the attitudes of the top players and being more friendly and being more giving, and a lot of that had to do with players like Roger coming up. ""I just felt like it really kind of changed where people were a little bit, definitely in the 90s, a lot more quiet, into themselves, and then it started to become better."" Meanwhile, Federer is hoping he can improve his service game as he hunts his ninth Swiss Indoors title this week. ""I didn't serve very well [against first-round opponent Filip Kranjovic,"" Federer said. ""I think I was misfiring the corners, I was not hitting the lines enough. ""Clearly you make your life more difficult, but still I was up 6-2, 3-1, break points, so things could have ended very quickly today, even though I didn't have the best serve percentage stats. ""But maybe that's exactly what caught up to me eventually. It's just getting used to it. This is where the first rounds can be tricky."""
7
- 6,"Nadal has not played tennis since he was forced to retire from the US Open semi-finals against Juan Martin Del Porto with a knee injury. The world No 1 has been forced to miss Spain's Davis Cup clash with France and the Asian hard court season. But with the ATP World Tour Finals due to begin next month, Nadal is ready to prove his fitness before the season-ending event at the 02 Arena. Nadal flew to Paris on Friday and footage from the Paris Masters official Twitter account shows the Spaniard smiling as he strides onto court for practice. The Paris Masters draw has been made and Nadal will start his campaign on Tuesday or Wednesday against either Fernando Verdasco or Jeremy Chardy. Nadal could then play defending champion Jack Sock in the third round before a potential quarter-final with either Borna Coric or Dominic Thiem. Nadal's appearance in Paris is a big boost to the tournament organisers who could see Roger Federer withdraw. Federer is in action at the Swiss Indoors in Basel and if he reaches the final, he could pull out of Paris in a bid to stay fresh for London. But as it stands, Federer is in the draw and is scheduled to face either former world No 3 Milos Raonic or Jo-Wilfried Tsonga in the second round. Federer's projected route to the Paris final could also lead to matches against Kevin Anderson and Novak Djokovic. Djokovic could play Marco Cecchinato in the second round. British No 1 Kyle Edmund is the 12th seed in Paris and will get underway in round two against either Karen Khachanov or Filip Krajinovic."
8
- 7,"Tennis giveth, and tennis taketh away. The end of the season is finally in sight, and with so many players defending,or losing,huge chunks of points in Singapore, Zhuhai and London, podcast co-hosts Nina Pantic and Irina Falconi discuss the art of defending points (02:14). It's no secret that Jack Sock has struggled on the singles court this year (his record is 7-19). He could lose 1,400 points in the next few weeks, but instead of focusing on the negative, it can all be about perspective (06:28). Let's also not forget his two Grand Slam doubles triumphs this season. Two players, Stefanos Tsitsipas and Kyle Edmund, won their first career ATP titles last week (13:26). It's a big deal because you never forget your first. Irina looks back at her WTA title win in Bogota in 2016, and tells an unforgettable story about her semifinal drama (14:04). In Singapore, one of the biggest storylines (aside from the matches, of course) has been the on-court coaching debate. Nina and Irina give their opinions on what coaching should look like in the future, on both tours (18:55)."
9
- 8,"Federer won the Swiss Indoors last week by beating Romanian qualifier Marius Copil in the final. The 37-year-old claimed his 99th ATP title and is hunting the century in the French capital this week. Federer has been handed a difficult draw where could could come across Kevin Anderson, Novak Djokovic and Rafael Nadal in the latter rounds. But first the 20-time Grand Slam winner wants to train on the Paris Masters court this afternoon before deciding whether to appear for his opening match against either Milos Raonic or Jo-Wilfried Tsonga. ""On Monday, I am free and will look how I feel,"" Federer said after winning the Swiss Indoors. ""On Tuesday I will fly to Paris and train in the afternoon to be ready for my first match on Wednesday night. ""I felt good all week and better every day. ""We also had the impression that at this stage it might be better to play matches than to train. ""And as long as I fear no injury, I play."" Federer's success in Basel last week was the ninth time he has won his hometown tournament. And he was delighted to be watched on by all of his family and friends as he purchased 60 tickets for the final for those dearest to him. ""My children, my parents, my sister and my team are all there,"" Federer added. ""It is always very emotional for me to thank my team. And sometimes it tilts with the emotions, sometimes I just stumble. ""It means the world to me. It makes me incredibly happy to win my home tournament and make people happy here. ""I do not know if it's maybe my last title, so today I try a lot more to absorb that and enjoy the moments much more consciously. ""Maybe I should celebrate as if it were my last title. ""There are very touching moments: seeing the ball children, the standing ovations, all the familiar faces in the audience. Because it was not always easy in the last weeks."""
@@ -1,13 +0,0 @@
1
- text_summarizer/__init__.py,sha256=3dAxhoVPAU35gBN8GAKJSMSU2zhFMKDegdvwgnOs5ao,63
2
- text_summarizer/cli.py,sha256=rWbSpT1gJ8kVcsTQ-ov6AZkfy5uUz2taAXeSnDEy0Zw,3773
3
- text_summarizer/create_shortcuts.py,sha256=1fwZkHG-2vim0HkIkb15BHEh-Xe2NbXcoidUtLvn1Tg,2436
4
- text_summarizer/summarizer.py,sha256=80RamR76QFtOAZGdVGqy-Bi5xQb3WBbQ2pSYSnOnT5c,12733
5
- text_summarizer/ui.py,sha256=Ky40zcr-_0zh5I7Kh4Bc8hKrEBdOALe5G4i3ukDJWts,16638
6
- text_summarizer/data/__init__.py,sha256=keVAOKSXlHFknU6dXsWGV_4Vx8RKEyUdY76PK05_4Ug,34
7
- text_summarizer/data/tennis.csv,sha256=oEPZr4Dy6cmCDtdQ2QYJyJpERzQseuNJ53JP2XyIfBk,12943
8
- text_summarizer_aweebtaku-1.2.4.dist-info/licenses/LICENSE,sha256=UdJHHpU6zYlYRsiLua2qeQwtJk2-UR17jXRV-MfxoVk,1093
9
- text_summarizer_aweebtaku-1.2.4.dist-info/METADATA,sha256=WZkeKrXDO665zHTAfyrSWUOBOrjbW7xHKOakYJMviqE,5782
10
- text_summarizer_aweebtaku-1.2.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
11
- text_summarizer_aweebtaku-1.2.4.dist-info/entry_points.txt,sha256=jOt-WcgMjgjfoD1cvbYoPExPiyIbLn49Gh-A5OEgugw,195
12
- text_summarizer_aweebtaku-1.2.4.dist-info/top_level.txt,sha256=2s-4Uyii86k2iEeiIi0JghAXW47cEQ8qM_ONYPs9Gh8,16
13
- text_summarizer_aweebtaku-1.2.4.dist-info/RECORD,,