Skip to content

Commit 168e979

Browse files
authored
Release 1.4.0
2 parents 34d240c + b5f52cc commit 168e979

30 files changed

+3570
-2041
lines changed

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,19 @@ Please leave us [your feedback](https://forms.gle/i64fowQmiVhMMC7f9) on how we c
2626

2727
**Models**
2828

29-
[Named Entity Recognition](http://docs.deeppavlov.ai/en/master/features/models/NER.html) | [Intent/Sentence Classification](http://docs.deeppavlov.ai/en/master/features/models/classifiers.html) |
29+
[Named Entity Recognition](http://docs.deeppavlov.ai/en/master/features/models/NER.html) | [Intent/Sentence Classification](http://docs.deeppavlov.ai/en/master/features/models/classification.html) |
3030

31-
[Question Answering over Text (SQuAD)](http://docs.deeppavlov.ai/en/master/features/models/SQuAD.html) | [Knowledge Base Question Answering](http://docs.deeppavlov.ai/en/master/features/models/kbqa.html)
31+
[Question Answering over Text (SQuAD)](http://docs.deeppavlov.ai/en/master/features/models/SQuAD.html) | [Knowledge Base Question Answering](http://docs.deeppavlov.ai/en/master/features/models/KBQA.html)
3232

33-
[Sentence Similarity/Ranking](http://docs.deeppavlov.ai/en/master/features/models/neural_ranking.html) | [TF-IDF Ranking](http://docs.deeppavlov.ai/en/master/features/models/tfidf_ranking.html)
33+
[Sentence Similarity/Ranking](http://docs.deeppavlov.ai/en/master/features/models/neural_ranking.html) | [TF-IDF Ranking](http://docs.deeppavlov.ai/en/master/features/models/tfidf_ranking.html)
3434

35-
[Automatic Spelling Correction](http://docs.deeppavlov.ai/en/master/features/models/spelling_correction.html) | [Entity Linking](http://docs.deeppavlov.ai/en/master/features/models/entity_linking.html)
35+
[Syntactic Parsing](http://docs.deeppavlov.ai/en/master/features/models/syntax_parser.html) | [Morphological Tagging](http://docs.deeppavlov.ai/en/master/features/models/morpho_tagger.html)
3636

37-
[Open Domain Questions Answering](http://docs.deeppavlov.ai/en/master/features/models/odqa.html) | [Russian SuperGLUE](http://docs.deeppavlov.ai/en/master/features/models/superglue.html)
37+
[Automatic Spelling Correction](http://docs.deeppavlov.ai/en/master/features/models/spelling_correction.html) | [Entity Extraction](http://docs.deeppavlov.ai/en/master/features/models/entity_extraction.html)
38+
39+
[Open Domain Questions Answering](http://docs.deeppavlov.ai/en/master/features/models/ODQA.html) | [Russian SuperGLUE](http://docs.deeppavlov.ai/en/master/features/models/superglue.html)
40+
41+
[Relation Extraction](http://docs.deeppavlov.ai/en/master/features/models/relation_extraction.html)
3842

3943
**Embeddings**
4044

@@ -179,7 +183,7 @@ from deeppavlov import evaluate_model
179183
model = evaluate_model(<config_path>, install=True, download=True)
180184
```
181185

182-
DeepPavlov also [allows](https://docs.deeppavlov.ai/en/master/features/python.html) to build a model from components for
186+
DeepPavlov also [allows](https://docs.deeppavlov.ai/en/master/intro/python.html) to build a model from components for
183187
inference using Python.
184188

185189
## License

deeppavlov/_meta.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = '1.3.0'
1+
__version__ = '1.4.0'
22
__author__ = 'Neural Networks and Deep Learning lab, MIPT'
33
__description__ = 'An open source library for building end-to-end dialog systems and training chatbots.'
44
__keywords__ = ['NLP', 'NER', 'SQUAD', 'Intents', 'Chatbot']

deeppavlov/models/kbqa/utils.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,11 @@ def correct_variables(query_triplets: List[str], answer_ent: List[str], query_in
123123
for j in range(len(triplet_elements)):
124124
if triplet_elements[j] not in ent_var and triplet_elements[j].startswith("?"):
125125
triplet_elements[j] = query_info["mid_var"]
126+
break
126127
if triplet_elements[j].startswith("?") \
127128
and triplet_elements[j] not in [query_info["mid_var"], query_info["unk_var"]]:
128129
triplet_elements[j] = query_info["unk_var"]
130+
break
129131
query_triplets[i] = " ".join(triplet_elements)
130132
query_triplets[i] = query_triplets[i].replace(ent_var, query_info["unk_var"])
131133
return query_triplets
@@ -174,8 +176,11 @@ def make_sparql_query(query_info: Tuple[List[str], List[str], List[str], Dict[st
174176
query_triplets = [fill_slots(elem, entities, types, rels, delete_rel_prefix=True) for elem in query_triplets]
175177
query_triplets = correct_variables(query_triplets, answer_ent, query_info_dict)
176178
filled_queries = []
177-
for triplets_p in list(itertools.permutations(query_triplets)):
178-
filled_queries.append(query_from_triplets(triplets_p, answer_ent, query_info_dict))
179+
if any(["qualifier" in filter_info_element for filter_info_element in filter_info]):
180+
filled_queries.append(query_from_triplets(query_triplets, answer_ent, query_info_dict))
181+
else:
182+
for triplets_p in list(itertools.permutations(query_triplets)):
183+
filled_queries.append(query_from_triplets(triplets_p, answer_ent, query_info_dict))
179184
return filled_queries
180185

181186

deeppavlov/models/preprocessors/torch_transformers_preprocessor.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ def __init__(self,
510510
subword_mask_mode: str = "first",
511511
return_features: bool = False,
512512
**kwargs):
513-
self._re_tokenizer = re.compile(r"[\w']+|[^\w ]")
513+
self._re_tokenizer = re.compile(r"[\d]+[\d\.,]+[\d]+|[\w'\.:@]+|[^\w ]")
514514
self.provide_subword_tags = provide_subword_tags
515515
self.mode = kwargs.get('mode')
516516
self.max_seq_length = max_seq_length
@@ -536,9 +536,16 @@ def __call__(self,
536536
for s in tokens:
537537
tokens_list = []
538538
tokens_offsets_list = []
539-
for elem in re.finditer(self._re_tokenizer, s):
540-
tokens_list.append(elem[0])
541-
tokens_offsets_list.append((elem.start(), elem.end()))
539+
matches = tuple(re.finditer(self._re_tokenizer, s))
540+
for i, elem in enumerate(matches):
541+
if (i == len(matches) - 1) and (elem[0][-1] == '.'):
542+
tokens_list.append(elem[0][:-1])
543+
tokens_list.append('.')
544+
tokens_offsets_list.append((elem.start(), elem.end() - 1))
545+
tokens_offsets_list.append((elem.end() - 1, elem.end()))
546+
else:
547+
tokens_list.append(elem[0])
548+
tokens_offsets_list.append((elem.start(), elem.end()))
542549
tokens_batch.append(tokens_list)
543550
tokens_offsets_batch.append(tokens_offsets_list)
544551
tokens = tokens_batch

deeppavlov/models/torch_bert/torch_transformers_sequence_tagger.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ def train_on_batch(self,
205205
labels=b_labels).loss
206206
if self.crf is not None:
207207
self.crf(y, y_masks)
208+
if self.is_data_parallel:
209+
loss = loss.mean()
208210
self._make_step(loss)
209211

210212
return {'loss': loss.item()}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
transformers>=4.13.0,<4.25.0
1+
transformers>=4.13.0,<4.25.0;python_version<"3.8"
2+
transformers==4.30.0;python_version>="3.8"

0 commit comments

Comments
 (0)