m3hrdadfi commited on
Commit
f474d6a
1 Parent(s): efb45d3

Hello gpt2-qa

Browse files
.gitignore ADDED
@@ -0,0 +1,886 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### Python template
2
+ # Byte-compiled / optimized / DLL files
3
+ __pycache__/
4
+ *.py[cod]
5
+ *$py.class
6
+
7
+ # C extensions
8
+ *.so
9
+
10
+ # Distribution / packaging
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+ cover/
54
+
55
+ # Translations
56
+ *.mo
57
+ *.pot
58
+
59
+ # Django stuff:
60
+ *.log
61
+ local_settings.py
62
+ db.sqlite3
63
+ db.sqlite3-journal
64
+
65
+ # Flask stuff:
66
+ instance/
67
+ .webassets-cache
68
+
69
+ # Scrapy stuff:
70
+ .scrapy
71
+
72
+ # Sphinx documentation
73
+ docs/_build/
74
+
75
+ # PyBuilder
76
+ .pybuilder/
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ # For a library or package, you might want to ignore these files since the code is
88
+ # intended to run in multiple environments; otherwise, check them in:
89
+ # .python-version
90
+
91
+ # pipenv
92
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
93
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
94
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
95
+ # install all needed dependencies.
96
+ #Pipfile.lock
97
+
98
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
99
+ __pypackages__/
100
+
101
+ # Celery stuff
102
+ celerybeat-schedule
103
+ celerybeat.pid
104
+
105
+ # SageMath parsed files
106
+ *.sage.py
107
+
108
+ # Environments
109
+ .env
110
+ .venv
111
+ env/
112
+ venv/
113
+ ENV/
114
+ env.bak/
115
+ venv.bak/
116
+
117
+ # Spyder project settings
118
+ .spyderproject
119
+ .spyproject
120
+
121
+ # Rope project settings
122
+ .ropeproject
123
+
124
+ # mkdocs documentation
125
+ /site
126
+
127
+ # mypy
128
+ .mypy_cache/
129
+ .dmypy.json
130
+ dmypy.json
131
+
132
+ # Pyre type checker
133
+ .pyre/
134
+
135
+ # pytype static type analyzer
136
+ .pytype/
137
+
138
+ # Cython debug symbols
139
+ cython_debug/
140
+
141
+ ### VisualStudio template
142
+ ## Ignore Visual Studio temporary files, build results, and
143
+ ## files generated by popular Visual Studio add-ons.
144
+ ##
145
+ ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
146
+
147
+ # User-specific files
148
+ *.rsuser
149
+ *.suo
150
+ *.user
151
+ *.userosscache
152
+ *.sln.docstates
153
+
154
+ # User-specific files (MonoDevelop/Xamarin Studio)
155
+ *.userprefs
156
+
157
+ # Mono auto generated files
158
+ mono_crash.*
159
+
160
+ # Build results
161
+ [Dd]ebug/
162
+ [Dd]ebugPublic/
163
+ [Rr]elease/
164
+ [Rr]eleases/
165
+ x64/
166
+ x86/
167
+ [Ww][Ii][Nn]32/
168
+ [Aa][Rr][Mm]/
169
+ [Aa][Rr][Mm]64/
170
+ bld/
171
+ [Bb]in/
172
+ [Oo]bj/
173
+ [Ll]og/
174
+ [Ll]ogs/
175
+
176
+ # Visual Studio 2015/2017 cache/options directory
177
+ .vs/
178
+ # Uncomment if you have tasks that create the project's static files in wwwroot
179
+ #wwwroot/
180
+
181
+ # Visual Studio 2017 auto generated files
182
+ Generated\ Files/
183
+
184
+ # MSTest test Results
185
+ [Tt]est[Rr]esult*/
186
+ [Bb]uild[Ll]og.*
187
+
188
+ # NUnit
189
+ *.VisualState.xml
190
+ TestResult.xml
191
+ nunit-*.xml
192
+
193
+ # Build Results of an ATL Project
194
+ [Dd]ebugPS/
195
+ [Rr]eleasePS/
196
+ dlldata.c
197
+
198
+ # Benchmark Results
199
+ BenchmarkDotNet.Artifacts/
200
+
201
+ # .NET Core
202
+ project.lock.json
203
+ project.fragment.lock.json
204
+ artifacts/
205
+
206
+ # ASP.NET Scaffolding
207
+ ScaffoldingReadMe.txt
208
+
209
+ # StyleCop
210
+ StyleCopReport.xml
211
+
212
+ # Files built by Visual Studio
213
+ *_i.c
214
+ *_p.c
215
+ *_h.h
216
+ *.ilk
217
+ *.meta
218
+ *.obj
219
+ *.iobj
220
+ *.pch
221
+ *.pdb
222
+ *.ipdb
223
+ *.pgc
224
+ *.pgd
225
+ *.rsp
226
+ *.sbr
227
+ *.tlb
228
+ *.tli
229
+ *.tlh
230
+ *.tmp
231
+ *.tmp_proj
232
+ *_wpftmp.csproj
233
+ *.log
234
+ *.vspscc
235
+ *.vssscc
236
+ .builds
237
+ *.pidb
238
+ *.svclog
239
+ *.scc
240
+
241
+ # Chutzpah Test files
242
+ _Chutzpah*
243
+
244
+ # Visual C++ cache files
245
+ ipch/
246
+ *.aps
247
+ *.ncb
248
+ *.opendb
249
+ *.opensdf
250
+ *.sdf
251
+ *.cachefile
252
+ *.VC.db
253
+ *.VC.VC.opendb
254
+
255
+ # Visual Studio profiler
256
+ *.psess
257
+ *.vsp
258
+ *.vspx
259
+ *.sap
260
+
261
+ # Visual Studio Trace Files
262
+ *.e2e
263
+
264
+ # TFS 2012 Local Workspace
265
+ $tf/
266
+
267
+ # Guidance Automation Toolkit
268
+ *.gpState
269
+
270
+ # ReSharper is a .NET coding add-in
271
+ _ReSharper*/
272
+ *.[Rr]e[Ss]harper
273
+ *.DotSettings.user
274
+
275
+ # TeamCity is a build add-in
276
+ _TeamCity*
277
+
278
+ # DotCover is a Code Coverage Tool
279
+ *.dotCover
280
+
281
+ # AxoCover is a Code Coverage Tool
282
+ .axoCover/*
283
+ !.axoCover/settings.json
284
+
285
+ # Coverlet is a free, cross platform Code Coverage Tool
286
+ coverage*.json
287
+ coverage*.xml
288
+ coverage*.info
289
+
290
+ # Visual Studio code coverage results
291
+ *.coverage
292
+ *.coveragexml
293
+
294
+ # NCrunch
295
+ _NCrunch_*
296
+ .*crunch*.local.xml
297
+ nCrunchTemp_*
298
+
299
+ # MightyMoose
300
+ *.mm.*
301
+ AutoTest.Net/
302
+
303
+ # Web workbench (sass)
304
+ .sass-cache/
305
+
306
+ # Installshield output folder
307
+ [Ee]xpress/
308
+
309
+ # DocProject is a documentation generator add-in
310
+ DocProject/buildhelp/
311
+ DocProject/Help/*.HxT
312
+ DocProject/Help/*.HxC
313
+ DocProject/Help/*.hhc
314
+ DocProject/Help/*.hhk
315
+ DocProject/Help/*.hhp
316
+ DocProject/Help/Html2
317
+ DocProject/Help/html
318
+
319
+ # Click-Once directory
320
+ publish/
321
+
322
+ # Publish Web Output
323
+ *.[Pp]ublish.xml
324
+ *.azurePubxml
325
+ # Note: Comment the next line if you want to checkin your web deploy settings,
326
+ # but database connection strings (with potential passwords) will be unencrypted
327
+ *.pubxml
328
+ *.publishproj
329
+
330
+ # Microsoft Azure Web App publish settings. Comment the next line if you want to
331
+ # checkin your Azure Web App publish settings, but sensitive information contained
332
+ # in these scripts will be unencrypted
333
+ PublishScripts/
334
+
335
+ # NuGet Packages
336
+ *.nupkg
337
+ # NuGet Symbol Packages
338
+ *.snupkg
339
+ # The packages folder can be ignored because of Package Restore
340
+ **/[Pp]ackages/*
341
+ # except build/, which is used as an MSBuild target.
342
+ !**/[Pp]ackages/build/
343
+ # Uncomment if necessary however generally it will be regenerated when needed
344
+ #!**/[Pp]ackages/repositories.config
345
+ # NuGet v3's project.json files produces more ignorable files
346
+ *.nuget.props
347
+ *.nuget.targets
348
+
349
+ # Microsoft Azure Build Output
350
+ csx/
351
+ *.build.csdef
352
+
353
+ # Microsoft Azure Emulator
354
+ ecf/
355
+ rcf/
356
+
357
+ # Windows Store app package directories and files
358
+ AppPackages/
359
+ BundleArtifacts/
360
+ Package.StoreAssociation.xml
361
+ _pkginfo.txt
362
+ *.appx
363
+ *.appxbundle
364
+ *.appxupload
365
+
366
+ # Visual Studio cache files
367
+ # files ending in .cache can be ignored
368
+ *.[Cc]ache
369
+ # but keep track of directories ending in .cache
370
+ !?*.[Cc]ache/
371
+
372
+ # Others
373
+ ClientBin/
374
+ ~$*
375
+ *~
376
+ *.dbmdl
377
+ *.dbproj.schemaview
378
+ *.jfm
379
+ *.pfx
380
+ *.publishsettings
381
+ orleans.codegen.cs
382
+
383
+ # Including strong name files can present a security risk
384
+ # (https://github.com/github/gitignore/pull/2483#issue-259490424)
385
+ #*.snk
386
+
387
+ # Since there are multiple workflows, uncomment next line to ignore bower_components
388
+ # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
389
+ #bower_components/
390
+
391
+ # RIA/Silverlight projects
392
+ Generated_Code/
393
+
394
+ # Backup & report files from converting an old project file
395
+ # to a newer Visual Studio version. Backup files are not needed,
396
+ # because we have git ;-)
397
+ _UpgradeReport_Files/
398
+ Backup*/
399
+ UpgradeLog*.XML
400
+ UpgradeLog*.htm
401
+ ServiceFabricBackup/
402
+ *.rptproj.bak
403
+
404
+ # SQL Server files
405
+ *.mdf
406
+ *.ldf
407
+ *.ndf
408
+
409
+ # Business Intelligence projects
410
+ *.rdl.data
411
+ *.bim.layout
412
+ *.bim_*.settings
413
+ *.rptproj.rsuser
414
+ *- [Bb]ackup.rdl
415
+ *- [Bb]ackup ([0-9]).rdl
416
+ *- [Bb]ackup ([0-9][0-9]).rdl
417
+
418
+ # Microsoft Fakes
419
+ FakesAssemblies/
420
+
421
+ # GhostDoc plugin setting file
422
+ *.GhostDoc.xml
423
+
424
+ # Node.js Tools for Visual Studio
425
+ .ntvs_analysis.dat
426
+ node_modules/
427
+
428
+ # Visual Studio 6 build log
429
+ *.plg
430
+
431
+ # Visual Studio 6 workspace options file
432
+ *.opt
433
+
434
+ # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
435
+ *.vbw
436
+
437
+ # Visual Studio LightSwitch build output
438
+ **/*.HTMLClient/GeneratedArtifacts
439
+ **/*.DesktopClient/GeneratedArtifacts
440
+ **/*.DesktopClient/ModelManifest.xml
441
+ **/*.Server/GeneratedArtifacts
442
+ **/*.Server/ModelManifest.xml
443
+ _Pvt_Extensions
444
+
445
+ # Paket dependency manager
446
+ .paket/paket.exe
447
+ paket-files/
448
+
449
+ # FAKE - F# Make
450
+ .fake/
451
+
452
+ # CodeRush personal settings
453
+ .cr/personal
454
+
455
+ # Python Tools for Visual Studio (PTVS)
456
+ __pycache__/
457
+ *.pyc
458
+
459
+ # Cake - Uncomment if you are using it
460
+ # tools/**
461
+ # !tools/packages.config
462
+
463
+ # Tabs Studio
464
+ *.tss
465
+
466
+ # Telerik's JustMock configuration file
467
+ *.jmconfig
468
+
469
+ # BizTalk build output
470
+ *.btp.cs
471
+ *.btm.cs
472
+ *.odx.cs
473
+ *.xsd.cs
474
+
475
+ # OpenCover UI analysis results
476
+ OpenCover/
477
+
478
+ # Azure Stream Analytics local run output
479
+ ASALocalRun/
480
+
481
+ # MSBuild Binary and Structured Log
482
+ *.binlog
483
+
484
+ # NVidia Nsight GPU debugger configuration file
485
+ *.nvuser
486
+
487
+ # MFractors (Xamarin productivity tool) working folder
488
+ .mfractor/
489
+
490
+ # Local History for Visual Studio
491
+ .localhistory/
492
+
493
+ # BeatPulse healthcheck temp database
494
+ healthchecksdb
495
+
496
+ # Backup folder for Package Reference Convert tool in Visual Studio 2017
497
+ MigrationBackup/
498
+
499
+ # Ionide (cross platform F# VS Code tools) working folder
500
+ .ionide/
501
+
502
+ # Fody - auto-generated XML schema
503
+ FodyWeavers.xsd
504
+
505
+ ### Eclipse template
506
+ .metadata
507
+ bin/
508
+ tmp/
509
+ *.tmp
510
+ *.bak
511
+ *.swp
512
+ *~.nib
513
+ local.properties
514
+ .settings/
515
+ .loadpath
516
+ .recommenders
517
+
518
+ # External tool builders
519
+ .externalToolBuilders/
520
+
521
+ # Locally stored "Eclipse launch configurations"
522
+ *.launch
523
+
524
+ # PyDev specific (Python IDE for Eclipse)
525
+ *.pydevproject
526
+
527
+ # CDT-specific (C/C++ Development Tooling)
528
+ .cproject
529
+
530
+ # CDT- autotools
531
+ .autotools
532
+
533
+ # Java annotation processor (APT)
534
+ .factorypath
535
+
536
+ # PDT-specific (PHP Development Tools)
537
+ .buildpath
538
+
539
+ # sbteclipse plugin
540
+ .target
541
+
542
+ # Tern plugin
543
+ .tern-project
544
+
545
+ # TeXlipse plugin
546
+ .texlipse
547
+
548
+ # STS (Spring Tool Suite)
549
+ .springBeans
550
+
551
+ # Code Recommenders
552
+ .recommenders/
553
+
554
+ # Annotation Processing
555
+ .apt_generated/
556
+ .apt_generated_test/
557
+
558
+ # Scala IDE specific (Scala & Java development for Eclipse)
559
+ .cache-main
560
+ .scala_dependencies
561
+ .worksheet
562
+
563
+ # Uncomment this line if you wish to ignore the project description file.
564
+ # Typically, this file would be tracked if it contains build/dependency configurations:
565
+ #.project
566
+
567
+ ### VirtualEnv template
568
+ # Virtualenv
569
+ # http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
570
+ .Python
571
+ [Bb]in
572
+ [Ii]nclude
573
+ [Ll]ib
574
+ [Ll]ib64
575
+ [Ll]ocal
576
+ [Ss]cripts
577
+ pyvenv.cfg
578
+ .venv
579
+ pip-selfcheck.json
580
+
581
+ ### TeX template
582
+ ## Core latex/pdflatex auxiliary files:
583
+ *.aux
584
+ *.lof
585
+ *.log
586
+ *.lot
587
+ *.fls
588
+ *.out
589
+ *.toc
590
+ *.fmt
591
+ *.fot
592
+ *.cb
593
+ *.cb2
594
+ .*.lb
595
+
596
+ ## Intermediate documents:
597
+ *.dvi
598
+ *.xdv
599
+ *-converted-to.*
600
+ # these rules might exclude image files for figures etc.
601
+ # *.ps
602
+ # *.eps
603
+ # *.pdf
604
+
605
+ ## Generated if empty string is given at "Please type another file name for output:"
606
+ .pdf
607
+
608
+ ## Bibliography auxiliary files (bibtex/biblatex/biber):
609
+ *.bbl
610
+ *.bcf
611
+ *.blg
612
+ *-blx.aux
613
+ *-blx.bib
614
+ *.run.xml
615
+
616
+ ## Build tool auxiliary files:
617
+ *.fdb_latexmk
618
+ *.synctex
619
+ *.synctex(busy)
620
+ *.synctex.gz
621
+ *.synctex.gz(busy)
622
+ *.pdfsync
623
+
624
+ ## Build tool directories for auxiliary files
625
+ # latexrun
626
+ latex.out/
627
+
628
+ ## Auxiliary and intermediate files from other packages:
629
+ # algorithms
630
+ *.alg
631
+ *.loa
632
+
633
+ # achemso
634
+ acs-*.bib
635
+
636
+ # amsthm
637
+ *.thm
638
+
639
+ # beamer
640
+ *.nav
641
+ *.pre
642
+ *.snm
643
+ *.vrb
644
+
645
+ # changes
646
+ *.soc
647
+
648
+ # comment
649
+ *.cut
650
+
651
+ # cprotect
652
+ *.cpt
653
+
654
+ # elsarticle (documentclass of Elsevier journals)
655
+ *.spl
656
+
657
+ # endnotes
658
+ *.ent
659
+
660
+ # fixme
661
+ *.lox
662
+
663
+ # feynmf/feynmp
664
+ *.mf
665
+ *.mp
666
+ *.t[1-9]
667
+ *.t[1-9][0-9]
668
+ *.tfm
669
+
670
+ #(r)(e)ledmac/(r)(e)ledpar
671
+ *.end
672
+ *.?end
673
+ *.[1-9]
674
+ *.[1-9][0-9]
675
+ *.[1-9][0-9][0-9]
676
+ *.[1-9]R
677
+ *.[1-9][0-9]R
678
+ *.[1-9][0-9][0-9]R
679
+ *.eledsec[1-9]
680
+ *.eledsec[1-9]R
681
+ *.eledsec[1-9][0-9]
682
+ *.eledsec[1-9][0-9]R
683
+ *.eledsec[1-9][0-9][0-9]
684
+ *.eledsec[1-9][0-9][0-9]R
685
+
686
+ # glossaries
687
+ *.acn
688
+ *.acr
689
+ *.glg
690
+ *.glo
691
+ *.gls
692
+ *.glsdefs
693
+ *.lzo
694
+ *.lzs
695
+
696
+ # uncomment this for glossaries-extra (will ignore makeindex's style files!)
697
+ # *.ist
698
+
699
+ # gnuplottex
700
+ *-gnuplottex-*
701
+
702
+ # gregoriotex
703
+ *.gaux
704
+ *.gtex
705
+
706
+ # htlatex
707
+ *.4ct
708
+ *.4tc
709
+ *.idv
710
+ *.lg
711
+ *.trc
712
+ *.xref
713
+
714
+ # hyperref
715
+ *.brf
716
+
717
+ # knitr
718
+ *-concordance.tex
719
+ # TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
720
+ # *.tikz
721
+ *-tikzDictionary
722
+
723
+ # listings
724
+ *.lol
725
+
726
+ # luatexja-ruby
727
+ *.ltjruby
728
+
729
+ # makeidx
730
+ *.idx
731
+ *.ilg
732
+ *.ind
733
+
734
+ # minitoc
735
+ *.maf
736
+ *.mlf
737
+ *.mlt
738
+ *.mtc[0-9]*
739
+ *.slf[0-9]*
740
+ *.slt[0-9]*
741
+ *.stc[0-9]*
742
+
743
+ # minted
744
+ _minted*
745
+ *.pyg
746
+
747
+ # morewrites
748
+ *.mw
749
+
750
+ # nomencl
751
+ *.nlg
752
+ *.nlo
753
+ *.nls
754
+
755
+ # pax
756
+ *.pax
757
+
758
+ # pdfpcnotes
759
+ *.pdfpc
760
+
761
+ # sagetex
762
+ *.sagetex.sage
763
+ *.sagetex.py
764
+ *.sagetex.scmd
765
+
766
+ # scrwfile
767
+ *.wrt
768
+
769
+ # sympy
770
+ *.sout
771
+ *.sympy
772
+ sympy-plots-for-*.tex/
773
+
774
+ # pdfcomment
775
+ *.upa
776
+ *.upb
777
+
778
+ # pythontex
779
+ *.pytxcode
780
+ pythontex-files-*/
781
+
782
+ # tcolorbox
783
+ *.listing
784
+
785
+ # thmtools
786
+ *.loe
787
+
788
+ # TikZ & PGF
789
+ *.dpth
790
+ *.md5
791
+ *.auxlock
792
+
793
+ # todonotes
794
+ *.tdo
795
+
796
+ # vhistory
797
+ *.hst
798
+ *.ver
799
+
800
+ # easy-todo
801
+ *.lod
802
+
803
+ # xcolor
804
+ *.xcp
805
+
806
+ # xmpincl
807
+ *.xmpi
808
+
809
+ # xindy
810
+ *.xdy
811
+
812
+ # xypic precompiled matrices and outlines
813
+ *.xyc
814
+ *.xyd
815
+
816
+ # endfloat
817
+ *.ttt
818
+ *.fff
819
+
820
+ # Latexian
821
+ TSWLatexianTemp*
822
+
823
+ ## Editors:
824
+ # WinEdt
825
+ *.bak
826
+ *.sav
827
+
828
+ # Texpad
829
+ .texpadtmp
830
+
831
+ # LyX
832
+ *.lyx~
833
+
834
+ # Kile
835
+ *.backup
836
+
837
+ # gummi
838
+ .*.swp
839
+
840
+ # KBibTeX
841
+ *~[0-9]*
842
+
843
+ # TeXnicCenter
844
+ *.tps
845
+
846
+ # auto folder when using emacs and auctex
847
+ ./auto/*
848
+ *.el
849
+
850
+ # expex forward references with \gathertags
851
+ *-tags.tex
852
+
853
+ # standalone packages
854
+ *.sta
855
+
856
+ # Makeindex log files
857
+ *.lpz
858
+
859
+ # xwatermark package
860
+ *.xwm
861
+
862
+ # REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
863
+ # option is specified. Footnotes are the stored in a file with suffix Notes.bib.
864
+ # Uncomment the next line to have this generated file ignored.
865
+ #*Notes.bib
866
+
867
+ ### JupyterNotebooks template
868
+ # gitignore template for Jupyter Notebooks
869
+ # website: http://jupyter.org/
870
+
871
+ .ipynb_checkpoints
872
+ */.ipynb_checkpoints/*
873
+
874
+ # IPython
875
+ profile_default/
876
+ ipython_config.py
877
+
878
+ # Remove previous ipynb_checkpoints
879
+ # git rm -r .ipynb_checkpoints/
880
+
881
+ # CUSTOM
882
+ .idea
883
+ tmp
884
+ *.tmp.py
885
+ .DS_store
886
+ .DS_Store
README.md CHANGED
@@ -1,33 +1,17 @@
1
  ---
2
- title: Gpt2 Persian Qa
3
- emoji: 🌍
4
- colorFrom: purple
5
- colorTo: yellow
6
  sdk: streamlit
7
  app_file: app.py
8
  pinned: false
9
  ---
10
 
11
- # Configuration
12
 
13
- `title`: _string_
14
- Display title for the Space
15
 
16
- `emoji`: _string_
17
- Space emoji (emoji-only character allowed)
18
-
19
- `colorFrom`: _string_
20
- Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
21
-
22
- `colorTo`: _string_
23
- Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
24
-
25
- `sdk`: _string_
26
- Can be either `gradio` or `streamlit`
27
-
28
- `app_file`: _string_
29
- Path to your main application file (which contains either `gradio` or `streamlit` Python code).
30
- Path is relative to the root of the repository.
31
-
32
- `pinned`: _boolean_
33
- Whether the Space stays on top of your list.
 
1
  ---
2
+ title: GPT2 QA - Persian
3
+ emoji: ⁉️
4
+ colorFrom: green
5
+ colorTo: green
6
  sdk: streamlit
7
  app_file: app.py
8
  pinned: false
9
  ---
10
 
11
+ # Streamlit demo for GPT2 QA - Persian
12
 
13
+ ### Launch demo:
 
14
 
15
+ ```
16
+ streamlit run app.py
17
+ ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app.py ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ from transformers import pipeline, set_seed
4
+ from transformers import AutoTokenizer
5
+ from transformers import GPT2LMHeadModel
6
+ from mtranslate import translate
7
+ import random
8
+
9
+ import meta
10
+ from normalizer import normalize
11
+ from utils import (
12
+ remote_css,
13
+ local_css,
14
+ load_json
15
+ )
16
+
17
+ EXAMPLES = load_json("examples.json")
18
+ CK = "متن"
19
+ QK = "پرسش"
20
+ AK = "پاسخ"
21
+
22
+
23
+ class TextGeneration:
24
+ def __init__(self):
25
+ self.debug = False
26
+ self.dummy_output = "مخلوطی از ایتالیایی و انگلیسی"
27
+ self.tokenizer = None
28
+ self.model = None
29
+ self.model_name_or_path = "m3hrdadfi/gpt2-persian-qa"
30
+ self.length_margin = 100
31
+ set_seed(42)
32
+
33
+ def load(self):
34
+ if not self.debug:
35
+ self.tokenizer = AutoTokenizer.from_pretrained(self.model_name_or_path)
36
+ self.model = GPT2LMHeadModel.from_pretrained(self.model_name_or_path)
37
+
38
+ def generate(self, prompt, generation_kwargs):
39
+
40
+ if not self.debug:
41
+ input_ids = self.tokenizer([prompt], return_tensors="pt")["input_ids"]
42
+ max_length = len(input_ids[0]) + self.length_margin
43
+ generation_kwargs["max_length"] = max_length
44
+
45
+ generated = self.model.generate(
46
+ input_ids,
47
+ **generation_kwargs,
48
+ )[0]
49
+
50
+ answer = self.tokenizer.decode(generated, skip_special_tokens=True)
51
+ found = answer.find(f"{AK}: ")
52
+ if not found:
53
+ return ""
54
+
55
+ answer = [a.strip() for a in answer[found:].split(f"{AK}: ") if a.strip()]
56
+ answer = answer[0] if len(answer) > 0 else ""
57
+ return answer
58
+
59
+ return self.dummy_output
60
+
61
+
62
+ @st.cache(allow_output_mutation=True)
63
+ def load_text_generator():
64
+ generator = TextGeneration()
65
+ generator.load()
66
+ return generator
67
+
68
+
69
+ def main():
70
+ st.set_page_config(
71
+ page_title="GPT2 QA - Persian",
72
+ page_icon="⁉️",
73
+ layout="wide",
74
+ initial_sidebar_state="expanded"
75
+ )
76
+ remote_css("https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font/dist/font-face.css")
77
+ local_css("assets/rtl.css")
78
+ generator = load_text_generator()
79
+
80
+ st.sidebar.markdown(meta.SIDEBAR_INFO)
81
+ num_beams = st.sidebar.slider(
82
+ label='Number of Beam',
83
+ help="Number of beams for beam search",
84
+ min_value=4,
85
+ max_value=15,
86
+ value=5,
87
+ step=1
88
+ )
89
+ repetition_penalty = st.sidebar.slider(
90
+ label='Repetition Penalty',
91
+ help="The parameter for repetition penalty",
92
+ min_value=1.0,
93
+ max_value=10.0,
94
+ value=1.0,
95
+ step=0.1
96
+ )
97
+ length_penalty = st.sidebar.slider(
98
+ label='Length Penalty',
99
+ help="Exponential penalty to the length",
100
+ min_value=1.0,
101
+ max_value=10.0,
102
+ value=1.0,
103
+ step=0.1
104
+ )
105
+ early_stopping = st.sidebar.selectbox(
106
+ label='Early Stopping ?',
107
+ options=(True, False),
108
+ help="Whether to stop the beam search when at least num_beams sentences are finished per batch or not",
109
+ )
110
+ translated = st.sidebar.selectbox(
111
+ label='Translation ?',
112
+ options=(True, False),
113
+ help="Will translate the result in English",
114
+ )
115
+ generation_kwargs = {
116
+ "num_beams": num_beams,
117
+ "early_stopping": early_stopping,
118
+ "repetition_penalty": repetition_penalty,
119
+ "length_penalty": length_penalty,
120
+ }
121
+
122
+ st.markdown(meta.HEADER_INFO)
123
+ prompts = [e["title"] for e in EXAMPLES] + ["Custom"]
124
+ prompt = st.selectbox('Examples', prompts, index=len(prompts) - 1)
125
+
126
+ if prompt == "Custom":
127
+ prompt_box = {
128
+ "context": meta.C_PROMPT_BOX,
129
+ "question": meta.Q_PROMPT_BOX,
130
+ "answer": meta.A_PROMPT_BOX,
131
+ }
132
+ else:
133
+ prompt_box = next(e for e in EXAMPLES if e["title"] == prompt)
134
+
135
+ context = st.text_area("Enter context", prompt_box["context"], height=250)
136
+ question = st.text_area("Enter question", prompt_box["question"], height=100)
137
+ answer = "پاسخ درست: " + prompt_box["answer"]
138
+ st.markdown(
139
+ f'<p class="rtl rtl-box">'
140
+ f'{answer}'
141
+ f'<p>',
142
+ unsafe_allow_html=True
143
+ )
144
+ if translated:
145
+ translated_answer = translate(answer, "en", "fa")
146
+ st.markdown(
147
+ f'<p class="ltr">'
148
+ f'{translated_answer}'
149
+ f'<p>',
150
+ unsafe_allow_html=True
151
+ )
152
+ generation_kwargs_ph = st.empty()
153
+
154
+ if st.button("Find the answer 🔎 "):
155
+ with st.spinner(text="Searching ..."):
156
+ generation_kwargs_ph.markdown(", ".join([f"`{k}`: {v}" for k, v in generation_kwargs.items()]))
157
+ context = normalize(context)
158
+ question = normalize(question)
159
+
160
+ if context and question:
161
+ text = f"{context} {QK}: {question} {AK}:"
162
+ generated_answer = generator.generate(text, generation_kwargs)
163
+ generated_answer = f"{AK}: {generated_answer}".strip()
164
+ context = f"{CK}: {context}".strip()
165
+ question = f"{QK}: {question}".strip()
166
+
167
+ st.markdown(
168
+ f'<p class="rtl rtl-box">'
169
+ f'<span class="result-text">{context}<span><br/><br/>'
170
+ f'<span class="result-text">{question}<span><br/><br/>'
171
+ f'<span class="result-text generated-text">{generated_answer} </span>'
172
+ f'</p>',
173
+ unsafe_allow_html=True
174
+ )
175
+
176
+ if translated:
177
+ translated_context = translate(context, "en", "fa")
178
+ translated_question = translate(question, "en", "fa")
179
+ translated_generated_answer = translate(generated_answer, "en", "fa")
180
+
181
+ st.markdown(
182
+ f'<p class="ltr ltr-box">'
183
+ f'<span class="result-text">{translated_context}<span><br/><br/>'
184
+ f'<span class="result-text">{translated_question}<span><br/><br/>'
185
+ f'<span class="result-text generated-text">{translated_generated_answer}</span>'
186
+ f'</p>',
187
+ unsafe_allow_html=True
188
+ )
189
+
190
+
191
+ if __name__ == '__main__':
192
+ main()
assets/rtl.css ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .rtl,
2
+ textarea {
3
+ font-family: Vazir !important;
4
+ text-align: right;
5
+ direction: rtl !important;
6
+ }
7
+ .rtl-box {
8
+ border-bottom: 1px solid #ddd;
9
+ padding-bottom: 20px;
10
+ }
11
+ .ltr {
12
+ text-align: left;
13
+ direction: ltr !important;
14
+ }
15
+
16
+ span.result-text {
17
+ padding: 3px 3px;
18
+ line-height: 32px;
19
+ }
20
+ span.generated-text {
21
+ background-color: rgb(118 200 147 / 13%);
22
+ }
dictionary.py ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ characters = {
2
+ "ك": "ک",
3
+ "دِ": "د",
4
+ "بِ": "ب",
5
+ "زِ": "ز",
6
+ "ذِ": "ذ",
7
+ "شِ": "ش",
8
+ "سِ": "س",
9
+ "ى": "ی",
10
+ "ي": "ی",
11
+ "ؤ": "و",
12
+ "ے": "ی",
13
+ "ۀ": "ه",
14
+ "ﭘ": "پ",
15
+ "ﮐ": "ک",
16
+ "ﯽ": "ی",
17
+ "ﺎ": "ا",
18
+ "ﺑ": "ب",
19
+ "ﺘ": "ت",
20
+ "ﺧ": "خ",
21
+ "ﺩ": "د",
22
+ "ﺱ": "س",
23
+ "ﻀ": "ض",
24
+ "ﻌ": "ع",
25
+ "ﻟ": "ل",
26
+ "ﻡ": "م",
27
+ "ﻢ": "م",
28
+ "ﻪ": "ه",
29
+ "ﻮ": "و",
30
+ "ﺍ": "ا",
31
+ "ة": "ه",
32
+ "ﯾ": "ی",
33
+ "ﯿ": "ی",
34
+ "ﺒ": "ب",
35
+ "ﺖ": "ت",
36
+ "ﺪ": "د",
37
+ "ﺮ": "ر",
38
+ "ﺴ": "س",
39
+ "ﺷ": "ش",
40
+ "ﺸ": "ش",
41
+ "ﻋ": "ع",
42
+ "ﻤ": "م",
43
+ "ﻥ": "ن",
44
+ "ﻧ": "ن",
45
+ "ﻭ": "و",
46
+ "ﺭ": "ر",
47
+ "ﮔ": "گ",
48
+ "إ": "ا",
49
+ "ٕ": " ",
50
+ "ھ": "ه",
51
+ "...": ".",
52
+ "…": ".",
53
+ "-": " - ",
54
+ "هٔ": "ه",
55
+ "ﻯ": "ی",
56
+ "ﻛ": "ک",
57
+ "ﭼ": "چ",
58
+ "ﺓ": "ه",
59
+ "ﻴ": "ی",
60
+ "ﻊ": "ع",
61
+ "ﮬ": "ه",
62
+ "ﺟ": "ج",
63
+ "ﺳ": "س",
64
+ "ﻦ": "ن",
65
+ "ﺬ": "ذ",
66
+ "ﺋ": "ئ",
67
+ "ﷲ": "لله",
68
+ "ﺞ": "ج",
69
+ "ﺙ": "ث",
70
+ "ﻗ": "ق",
71
+ "ﮪ": "ه",
72
+ "ﺰ": "ز",
73
+ "ﯼ": "ی",
74
+ "ٺ": "ت",
75
+ "ﺻ": "ص",
76
+ "ﻂ": "ط",
77
+ "ﻣ": "م",
78
+ "ﻈ": "ظ",
79
+ "ﺐ": "ب",
80
+ "ﻍ": "غ",
81
+ "ݸ": "و",
82
+ "ﻨ": "ن",
83
+ "ﻝ": "ل",
84
+ "ﻩ": "ه",
85
+ "ﻲ": "ی",
86
+ "ﻐ": "غ",
87
+ "ﺲ": "س",
88
+ "ﺁ": "آ",
89
+ "ڔ": "ر",
90
+ "ﺫ": "ذ",
91
+ "ﭻ": "چ",
92
+ "ﺠ": "ج",
93
+ "ﯙ": "و",
94
+ "ﮏ": "ک",
95
+ "ﺣ": "ح",
96
+ "ﺝ": "ج",
97
+ "ﺼ": "ص",
98
+ "ﻳ": "ی",
99
+ "ﻘ": "ق",
100
+ "ﺨ": "خ",
101
+ "ﻔ": "ف",
102
+ "ﻎ": "غ",
103
+ "ئ": "ی",
104
+ "ﻓ": "ف",
105
+ "ﻕ": "ق",
106
+ "ﮋ": "ژ",
107
+ "ﺗ": "ت",
108
+ "ﻁ": "ط",
109
+ "ﺯ": "ز",
110
+ "ﮕ": "گ",
111
+ "ﺌ": "ئ",
112
+ "ﺵ": "ش",
113
+ "ۮ": "د",
114
+ "ﻫ": "ه",
115
+ "ﻬ": "ه",
116
+ "ﻏ": "غ",
117
+ "ﻰ": "ی",
118
+ "﷼": "ریال",
119
+ "ﺿ": "ض",
120
+ "ﺛ": "ث",
121
+ "ݐ": "پ",
122
+ "ﺏ": "ب",
123
+ "ﭙ": "پ",
124
+ "ﭽ": "چ",
125
+ "ﺜ": "ث",
126
+ "ﻃ": "ط",
127
+ "ۂ": "ه",
128
+ "ﻑ": "ف",
129
+ "ﺕ": "ت",
130
+ "ﻞ": "ل",
131
+ }
132
+
133
+ special_tokens = {}
134
+
135
+ words_map = {
136
+ "Leave a comment": "",
137
+ "[…]": "",
138
+ "[.]": "",
139
+ }
examples.json ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "context": "خوب، بد، زشت یک فیلم درژانر وسترن اسپاگتی حماسی است که توسط سرجو لئونه در سال ۱۹۶۶ در ایتالیا ساخته شد. زبانی که بازیگران این فیلم به آن تکلم می‌کنند مخلوطی از ایتالیایی و انگلیسی است. این فیلم سومین (و آخرین) فیلم از سه‌گانهٔ دلار (Dollars Trilogy) سرجو لئونه است. این فیلم در حال حاضر در فهرست ۲۵۰ فیلم برتر تاریخ سینما در وب‌گاه IMDB با امتیاز ۸٫۸ از ۱۰، رتبهٔ هشتم را به خود اختصاص داده‌است و به عنوان بهترین فیلم وسترن تاریخ سینمای جهان شناخته می‌شود. «خوب» (کلینت ایستوود، در فیلم، با نام «بلوندی») و «زشت» (ایلای والاک، در فیلم، با نام «توکو») با هم کار می‌کنند و با شگرد خاصی، به گول زدن کلانترهای مناطق مختلف و پول درآوردن از این راه می‌پردازند. «بد» (لی وان کلیف) آدمکشی حرفه‌ای است که به‌خاطر پول حاضر به انجام هر کاری است. «بد»، که در فیلم او را «اِنجل آیز (اِینجل آیز)» (به انگلیسی: Angel Eyes) صدا می‌کنند. به‌دنبال گنجی است که در طی جنگ‌های داخلی آمریکا، به دست سربازی به نام «جکسون»، که بعدها به «کارسون» نامش را تغییر داده، مخفی شده‌است.",
4
+ "question": "در فیلم خوب بد زشت شخصیت ها کجایی صحبت می کنند؟",
5
+ "answer": "مخلوطی از ایتالیایی و انگلیسی",
6
+ "title": "Example No. 1"
7
+ },
8
+ {
9
+ "context": "چهارشنبه‌سوری یکی از جشن‌های ایرانی است که از غروب آخرین سه‌شنبه ی ماه اسفند، تا پس از نیمه‌شب تا آخرین چهارشنبه ی سال، برگزار می‌شود و برافروختن و پریدن از روی آتش مشخصهٔ اصلی آن است. این جشن، نخستین جشن از مجموعهٔ جشن‌ها و مناسبت‌های نوروزی است که با برافروختن آتش و برخی رفتارهای نمادین دیگر، به‌صورت جمعی در فضای باز برگزار می‌شود. به‌گفتهٔ ابراهیم پورداوود چهارشنبه‌سوری ریشه در گاهنبارِ هَمَسْپَتْمَدَم زرتشتیان و نیز جشن نزول فروهرها دارد که شش روز پیش از فرارسیدن نوروز برگزار می‌شد. احتمال دیگر این است که چهارشنبه‌سوری بازمانده و شکل تحول‌یافته‌ای از جشن سده باشد، که احتمال بعیدی است. علاوه برافروختن آتش، آیین‌های مختلف دیگری نیز در بخش‌های گوناگون ایران در زمان این جشن انجام می‌شوند. برای نمونه، در تبریز، مردم به چهارشنبه‌بازار می‌روند که با چراغ و شمع، به‌طرز زیبایی چراغانی شده‌است. هر خانواده یک آینه، دانه‌های اسفند، و یک کوزه برای سال نو خریداری می‌کنند. همه‌ساله شهروندانی از ایران در اثر انفجارهای ناخوشایند مربوط به این جشن، کشته یا مصدوم می‌شوند.",
10
+ "question": "نام جشن اخرین شنبه ی سال چیست؟",
11
+ "answer": "چهارشنبه‌سوری",
12
+ "title": "Example No. 2"
13
+ },
14
+ {
15
+ "context": "قرارداد کرسنت قراردادی برای فروش روزانه معادل ۵۰۰ میلیون فوت مکعب، گاز ترش میدان سلمان است، که در سال ۱۳۸۱ و در زمان وزارت بیژن نامدار زنگنه در دولت هفتم مابین شرکت کرسنت پترولیوم و شرکت ملی نفت ایران منعقد گردید. مذاکرات اولیه این قرارداد از سال ۱۹۹۷ آغاز شد و در نهایت، سال ۲۰۰۱ (۱۳۸۱) به امضای این تفاهم نامه مشترک انجامید. بر اساس مفاد این قرارداد، مقرر شده بود که از سال ۲۰۰۵ با احداث خط لوله در خلیج فارس، گاز فرآورده نشده میدان سلمان (مخزن مشترک با ابوظبی)، به میزان روزانه ۵۰۰ میلیون فوت مکعب (به قول برخی منابع ۶۰۰ میلیون فوت مکعب) به امارات صادر شود. این قرارداد مطابق قوانین داخلی ایران بسته شده‌ و تنها قرارداد نفتی ایران است که از طرف مقابل خو��، تضمین گرفته‌است. اجرای این پروژه در سال ۱۳۸۴ با دلایل ارائه شده از سوی دیوان محاسبات ایران از جمله تغییر نیافتن بهای گاز صادراتی و ثابت ماندن آن در هفت سال اول اجرای قرارداد متوقف شد. این در حالی است که طبق تعریف حقوقی، دیوان محاسبات ایران، حق دخالت در قراردادها، پیش از آنکه قراردادها اجرایی و مالی شوند را ندارد.",
16
+ "question": "طرفین قرار داد کرسنت کیا بودن؟",
17
+ "answer": "کرسنت پترولیوم و شرکت ملی نفت ایران",
18
+ "title": "Example No. 3"
19
+ },
20
+ {
21
+ "context": "ناف جایی قرار گرفته که در واقع بندناف در داخل رحم در آنجا به شکم جنین وصل بوده‌است. بندناف که جفت را به جنین متصل کرده بعد از تولد از نوزاد جدا می‌شود. برای جدا کردن بند ناف از دو پنس استفاده می‌کنند و بین آن دو را میبرند. پنس دیگری نزدیک شکم نوزاد قرار داده می‌شود که بعد از دو روز برداشته خواهد شد. بندناف باقی‌مانده طی ۱۵ روز خشک شده و می‌افتد و به جای آن اسکاری طبیعی به جای میماند. البته بر خلاف تصور عامه مردم شکل ناف در اثر بریدن بند ناف به وجود نمی‌آید و پیش از این در شکم مادر حالت ناف شکل گرفته‌است. شکل ناف در میان مردم مختلف متفاوت است و اندازه آن بین ۱.۵ تا ۲ سانتی‌متر است. تمام پستانداران جفت‌زیست ناف دارند. ناف در انسان‌ها به سادگی قابل مشاهده‌است.",
22
+ "question": "بند ناف انسان به کجا وصل است؟\t",
23
+ "answer": "جفت",
24
+ "title": "Example No. 4"
25
+ },
26
+ {
27
+ "context": "بیش از ده هزار سال است که انسان‌ها در قارهٔ آمریکا زندگی می‌کنند. قاره آمریکا توسط کریستف کلمب و در سال ۱۴۹۲ کشف شد اما او به اشتباه فکر کرد که آنجا هندوستان است اما مدت‌ها بعد آمریگو وسپوچی اعلام کرد که این قاره جدیدی است. اما تاریخ آمریکا به عنوان یک کشور مستقل به سال ۱۷۸۳ میلادی بازمی‌گردد که در آن آمریکا بر طبق معاهدهٔ پاریس به رسمیت شناخته گردید.",
28
+ "question": "قاره آمریکا در چه سالی کشف شد؟",
29
+ "answer": "۱۴۹۲",
30
+ "title": "Example No. 5"
31
+ },
32
+ {
33
+ "context": "جشنوارهٔ فیلم فجر مهم‌ترین جشنوارهٔ سینمایی ایران است که از سال ۱۳۶۱ تاکنون، در میانهٔ بهمن ماه هر سال در تهران برگزار می‌گردد. تاکنون ۳۹ دوره از این جشنواره برگزار شده‌است که آخرین آن در سال ۱۳۹۹ بوده است. این جشنواره توسط بنیاد سینمایی فارابی و زیر نظر وزارت فرهنگ و ارشاد اسلامی برگزار می‌شود. جشنوارهٔ فیلم فجر، جایگزینی برای جشنوارهٔ بین‌المللی فیلم تهران بود که تا پیش از انقلاب ۱۳۵۷ جمهوری اسلامی ایران، با حمایت دفتر مخصوص فرح پهلوی در ایران برگزار می‌شد و در آن فیلم‌های برگزیده سینمای ایران در کنار آثار سینمای بین‌المللی رقابت می‌کردند. بعد از انقلاب اسلامی ایران، این جشنواره تعطیل شد و بعد از ۴ سال، جشنوارهٔ فیلم فجر، هم‌زمان با روزهای دهه فجر جایگزین آن شد. نخستین دوره‌ی جشنوارهٔ فیلم فجر از ۱۲ تا ۲۲ بهمن سال ۱۳۶۱ به دبیری حسین وخشوری برگزار شد. در بخش جوایز از دوره پنجم به برندگان «لوح زرین» اهدا شد و عنوان «سیمرغ» از هفتمین دوره جشنواره به صورت جدی مطرح گردید که تا امروز ادامه داشته‌است. در حال حاضر «دیپلم افتخار» دیگر جایزه جشنوارهٔ فیلم فجر است.",
34
+ "question": "جشنواره فیلم فجر در چه بازه ای از سال برگزار می شود؟",
35
+ "answer": "میانهٔ بهمن ماه هر سال",
36
+ "title": "Example No. 6"
37
+ },
38
+ {
39
+ "context": "خلیج فارس (شاخاب پارس یا دریای پارس)، نام آبراهی پراهمیت در آسیای غربی و منطقه خاورمیانه است که در امتداد دریای عمان و در میان ایران و شبه‌جزیره عربستان قرار دارد. مساحت خلیج فارس ۲۳۷٬۴۷۳ کیلومتر مربع است، طول آن حدود ۹۰۰ کیلومتر و عرض متوسط آن ۲۵۰ کیلومتر است و پس از خلیج مکزیک و خلیج هادسون سومین خلیج بزرگ جهان بشمار می‌آید. خلیج فارس از شرق از طریق تنگه هرمز و دریای عمان به اقیانوس هند و دریای عرب راه دارد، و از غرب به دلتای رودخانه اروندرود، که حاصل پیوند دو رودخانهٔ دجله و فرات و پیوستن رود کارون به آن است، ختم می‌شود. هشت کشور در اطراف خلیج فارس قرار دارند. در این میان سواحل شمالی خلیج فارس تماماً در جغرافیای سیاسی ایران قرار دارند. به سبب وجود منابع سرشار نفت و گاز در خلیج فارس و سواحل آن، این آبراهه در سطح بین‌المللی، منطقه‌ای مهم و راهبردی بشمار می‌آید. نام تاریخی این خلیج، در زبان‌های گوناگون، ترجمه عبارت خلیج فارس یا دریای پارس بوده‌است. همچنین در تمام سازمان‌های بین‌المللی نام رسمی این خلیج، «خلیج فارس» است اما برخی از کشورهای عربی در دهه‌های اخیر آن را خلیج عربی یا به سادگی، خلیج می‌نامند. سازمان آب‌نگاری بین‌المللی از نام خلیج ایران (خلیج فارس) برای این خلیج استفاده می‌کند.",
40
+ "question": "ابعاد خلیج فارس کدامند؟",
41
+ "answer": "مساحت خلیج فارس ۲۳۷٬۴۷۳ کیلومتر مربع است",
42
+ "title": "Example No. 7"
43
+ },
44
+ {
45
+ "context": "ایستگاه فضایی نوعی سازه است که برای زندگی و کار بشر در فضا طراحی و ساخته شده‌است. تاکنون تنها ایستگاه‌های مدار پایین به مرحلهٔ بهره‌برداری رسیده‌اند که آن‌ها را «ایستگاه مداری» نیز می‌خوانند. تفاوت ایستگاه فضایی با فضاپیماهای دیگر این است که در ایستگاه فضایی امکانات اساسی پیش‌رانی یا فرود بر زمین وجود ندارد؛ در عوض از وسایل نقلیهٔ دیگر برای ترابری (چه از ایستگاه چه به ایستگاه) سود جسته می‌شود. ایستگاه‌های فضایی برای سکونت میان‌مدت طراحی شده‌اند که درازایش می‌تواند چند هفته، چند ماه و حتی چند سال باشد. تنها ایستگاه فضایی‌ای که هم‌اینک مورد استفاده‌است، «ایستگاه فضایی بین‌المللی» است. ایستگاه‌های فضایی پیشین الماز، سری سالیوت، اسکای‌لب و میر بودند. تاریخچهٔ ساخت و توسعهٔ ایستگاه‌های فضایی به زمان جنگ سرد و اوج رقابت‌های فضایی بازمی‌گردد. زمانی‌که راکت ساترن ۵ توسط آمریکا و به دست دکتر ورنر فون براون و گروهش توسعه داده می‌شد، این مهندس آلمانی همواره ایدهٔ ساخت اقامت‌گاهی فضایی را در سر می‌پروراند.",
46
+ "question": "کدوم ایستگاه فضایی الان استفاده می شه؟",
47
+ "answer": "ایستگاه فضایی بین‌المللی",
48
+ "title": "Example No. 8"
49
+ },
50
+ {
51
+ "context": "باشگاه فوتبال رئال مادرید یک باشگاه حرفه‌ای فوتبال است که در مادرید، پایتخت اسپانیا قرار دارد. رئال موفق‌ترین تیم تاریخ فوتبال اسپانیا و موفق‌ترین تیم تاریخ فوتبال اروپا و موفق‌ترین تیم فوتبال سدهٔ ۲۰ میلادی به انتخاب فیفا است. آن‌ها دارای رکورد ۳۴ بار قهرمانی در لالیگا، ۱۹ قهرمانی در کوپا دل ری (جام حذفی)، ۱۰ سوپرکاپ اسپانیا، ۱۳ قهرمانی در لیگ قهرمانان اروپا، ۲ جام یوفا، ۴ سوپرکاپ اروپا و ۴ قهرمانی در جام باشگاه‌های جهان هستند. رئال مادرید رکورددار قهرمانی در لیگ قهرمانان اروپا با ۱۳ قهرمانی و جام باشگاه های جهان با ۴ قهرمانی است. همچنین رئال مادرید برنده بهترین باشگاه قرن از سوی فیفا شده‌است. همچنین کلمهٔ رئال در زبان اسپانیایی، به معنی «سلطن��ی» است، این لقب را شاه آلفونسو سیزدهم در سال ۱۹۲۰ بر این تیم نهاد. همچنین در همان سال، شکل یک تاج نیز بر روی آرم این باشگاه قرار گرفت. رئال مادرید سال‌هاست که در لالیگا، از تیم‌های قدرتمند محسوب می‌شود و رقیب اصلی این تیم نیز، بارسلونا است. از نظر درآمد، رئال مادرید با ۵۵۷ میلیون یورو درآمد در فصل ۱۵–۲۰۱۴ در صدر پردرآمدترین باشگاه‌های فوتبال جهان بوده‌است.",
52
+ "question": "لقب باشگاه رئال مادرید از کجا میاد؟",
53
+ "answer": "شاه آلفونسو سیزدهم در سال ۱۹۲۰ بر این تیم نهاد",
54
+ "title": "Example No. 9"
55
+ },
56
+ {
57
+ "context": "شیره ماده‌ای‌ست که با عصاره‌گیری از یک گیاه یا میوه‌هایی مانند انگور، خرما و توت سیب و معمولاً از طریق جوشاندن با کمک یک حلّال مانند آب یا الکل به دست می‌آید. شیره برخی گیاهان نیز با تیغ زدن یا خراش دادن پوست گیاه به دست می‌آید مانند شیره درخت افرا که از آن شکر تولید می‌شود و نیز شیره درختان کائوچوکی که در صنعت لاستیک‌سازی کاربرد دارند. تریاک نیز در واقع شیره گرز خشخاش است که با خراش دادن از گیاه خارج شده و در مجاورت هوا سفت می‌شود. شیره انگور ماده‌ای است بسیار شیرین که از آب انگور به دست می‌آید. شیره انگور فرایند تولید متفاوتی با شیره توت و خرما دارد ابتدا آب انگور را از انگور جدا می‌کنند سپس نوعی خاک قلیایی به آن اضافه می‌کنند که باعث می‌شود تفاله انگور به همراه خاک ته‌نشین شود بعد آب انگور را داخل دیگ‌هایی ریخته و می‌جوشانند تا به رنگ طلایی نزدیک به سرخ درآید. طبع برخی از شیره ها گرم و برخی سرد می باشد. دوشاب را معمولاً از انگور کشمشی سفید که مزه‌ای شیرین دارد بدست می‌آورند. دوشاب از کشمش خشک تهیه می ‌شود ولی شیره انگور از انگور خیس پخته می ‌شود. شیرهٔ پرورده محلولی غلیظ حاوی قندها و پروتئین‌ها و مواد معدنی است که در آوند آبکش گیاهان جریان دارد.",
58
+ "question": "شیره انگور چیه؟",
59
+ "answer": "شیره ماده‌ای‌ست که با عصاره‌گیری از یک گیاه یا میوه‌هایی مانند انگور، خرما و توت سیب و معمولاً از طریق جوشاندن با کمک یک حلّال مانند آب یا الکل به دست می‌آید.",
60
+ "title": "Example No. 10"
61
+ },
62
+ {
63
+ "context": "گلوله، مرمی یا پرّانه جسمی است که از سلاح گرم یا سلاح بادی شلیک می‌شود. گلوله معمولاً از فلز (بیشتر سرب) ساخته می‌شود و معمولاً فاقد مواد منفجره است. آسیبی که به هدف وارد می‌کند صرفاً ناشی از ضربه جسم جامد آن است. گلوله در سلاح کمری یا تفنگ بخشی از فشنگ است. کلمه فارسی گلوله به صورت «غلوله» و «گولوله» نیز به کار رفته است.[۱] واژه گلوله یادگار دوره‌ای است که گلوله در سلاح‌های گرم به صورت کروی ساخته می‌شد. از قرن نوزدهم شکل گلوله‌ها تغییر کرد و به صورت کشیده و نوک تیز یا اسپیتزر درآمد. در برخی از متن‌های مربوط به شکار و تیراندازی واژه «مَرمی» نیز که واژه‌ای عربی است، به‌جای گلوله بکار می‌رود. گلوله‌ها ویژگی‌های مشترک منحصر به فردی دارند. به عنوان نمونه ویژگی‌های نظیر مُهر کالیبر با فونت بخصوص، آلیاژ پوسته گلوله و سه دندانه در جایی که چاشنی به پوکه فشنگ وصل می‌شود، نشان‌دهنده یک سازنده مشترک است. هم‌چنین در برخی موارد، گلوله‌ها دارای مُهرهایی هستند که در بایگانی‌های عمومی اطلاعات مربوط به سازندگان سلاح موجود است. مُهرها دارای علامت‌گذاری کالیبر ساده هستند که معمولاً دو رقم آخر سال ساخت گلوله را نشان می‌دهند.",
64
+ "question": "واژه گلوله مربوط به چه دوره‌ای می‌باشد؟",
65
+ "answer": "که گلوله در سلاح‌های گرم به صورت کروی ساخته می‌شد.",
66
+ "title": "Example No. 11"
67
+ },
68
+ {
69
+ "context": "قالی، فرش یا قالین نوعی گستردنیِ بافته شده از الیاف پنبه، پشم و در بعضی موارد ابریشم است که معمولاً برای پوشش زمین به کار می‌رود. به دست بافتهٔ پُرزدار و گره‌دار، قالی گفته می‌شود. از آنجا که قالی و فرش همیشه نقش‌های زیبا بر خود داشته‌اند، امروزه به جنبهٔ تزئینی آن نیز توجه می‌شود. در زبان پهلوی واژه‌های گوناگونی برای اشاره به انواع گستردنی‌ها به کار برده می‌شد، برای قالی نفیس از بَت یا بوپ، برای نمد و فرش از نمت استفاده می‌شد. اما واژهٔ قالی یا غالی از نام شهری به نام قالین در ارمنستان که در آن دوران بخشی از ایران باستان بوده‌است، گرفته شده‌است. البتّه فرهنگ لغت عمید کلمهٔ قالی را برگرفته از کلمهٔ ترکی قالین به معنای فرشِ پُرزدار که با نخ و پشم به رنگ‌های مختلف بافته می‌شود، معنی کرده‌است. فرش‌های ایران در دورهٔ صفویه به بالاترین حد خود در زیبایی و بافت رسیدند که این مهم به دلیل. تحت پشتیبانی شاهان قدرتمندی چون شاه عباس قرارگرفتن بود و دسترسی فراوان به مواد مورد نیاز برای بافت فرش و همچنین به‌رسمیت‌شناختنِ فرش به عنوان کالایی برای تجارت بوده‌است. قالی ایرانی پازیریک، قدیمی‌ترین قالیِ دستبافِ یافته‌شدهٔ جهان است که در سیبری کشف شده و بافت ایران در دوران هخامنشیان است.",
70
+ "question": "قالی یا فرش چیه؟",
71
+ "answer": "قالی، فرش یا قالین نوعی گستردنیِ بافته شده از الیاف پنبه، پشم و در بعضی موارد ابریشم است که معمولاً برای پوشش زمین به کار می‌رود.",
72
+ "title": "Example No. 12"
73
+ },
74
+ {
75
+ "context": "تُرکیه با نام رسمی جمهوری ترکیه، کشوری اوراسیایی است که بخش بزرگ کشور یعنی آناتولی یا آسیای کوچک در شمال غرب آسیا و خاورمیانه جای گرفته‌است و بخش کوچکی نیز به نام تراکیه در منطقهٔ بالکان (منطقه‌ای در جنوب شرق اروپا) قرار دارد. ترکیه در شرق با کشورهای ایران، نخجوان، ارمنستان، و گرجستان؛ در جنوب شرقی با عراق و سوریه؛ و در شمال غربی (بخش اروپایی) با بلغارستان و یونان همسایه است. همچنین ترکیه از شمال با دریای سیاه، از غرب با دو دریای کوچک مرمره و اژه و از جنوب غرب با دریای مدیترانه مرز آبی دارد. دو تنگهٔ راهبردی بسفر و داردانل نیز در اختیار ترکیه است. پهناوری ترکیه ۷۸۳٬۳۵۶ کیلومتر مربع (سی و هفتم) است. ترکیه کشوری کوهستانی و نسبتاً پرباران است. شکل این کشور مانند یک مستطیل است که از سوی شرق و غرب امتداد یافته‌است. ترکیه با قرار گرفتن در یکی از حسّاس‌ترین مناطق جهان، دارای موقعیّت جغرافیایی راهبردی و بسیار خوبی است و گذرگاه شمال غرب آسیا و اروپا به‌شمار می‌آید و کشورهای بسیاری، به ویژه کشور ایران از خاک ترکیه برای ترانزیت کالا و انرژی استفاده می‌کنند.",
76
+ "question": "منطقهٔ بالکان کجاست؟",
77
+ "answer": "منطقه‌ای در جنوب شرق اروپا",
78
+ "title": "Example No. 13"
79
+ },
80
+ {
81
+ "context": "یک اِنجیل، شرحی از زندگی و آموزه‌های عیسی است. چهار انجیل اصلی، یعنی انجیل متی، مرقس، لوقا و یوحنا، در کنار یکدیگر انجیل‌های عهد جدید از کتاب مقدس هستند و احتمالاً بین سال‌های ۶۶ تا ۱۱۰ میلادی نوشته شده‌اند. نام نویسندگان چهار انجیل مذکور مشخص نیست و این اسامی را در قرن دوم میلادی به آن‌ها داده‌اند. احتمال قریب به یقین هیچ‌کدام از نویسندگان این انجیل‌ها عیسی را از نزدیک نمی‌شناختند و هر چهار انجیل پس از نقل سینه به سینه سرانجام مکتوب شده‌اند. به اتفاق مسیحیان عهد جدید را به عنوان کتاب آسمانی خود قبول دارند و مطالعه می‌کنند. نام این بخش به پیمانی اشاره دارد که آغازگر دورهٔ جدیدی از ارتباط خداوند با انسان است. خداوند طبق این پیمان شریعتی را که از طریق موسی عطا کرده بود برداشت و ایمان به مسیح را شرط بخشایش گناهان انسان و رستگاری او قرار داد. عهد جدید علاوه بر چهار انجیل اصلی، کتاب اعمال رسولان، نامه‌های رسولان مسیح و کتاب مکاشفه را هم دربرمی‌گیرد. انجیل‌های دیگری هم در طول تاریخ نوشته شده‌است که همگی متاخرتر از چهار انجیل اصلی هستند.",
82
+ "question": "انجیل‌های عهد جدید در چه سالی ایجاد شده اند؟",
83
+ "answer": "احتمالاً بین سال‌های ۶۶ تا ۱۱۰ میلادی",
84
+ "title": "Example No. 14"
85
+ },
86
+ {
87
+ "context": "آشیل که از مادری آسمانی به نام تتیس و پدری فانی به دنیا آمده و مقدّر شده یا عمری طولانی داشته باشد یا عمری کوتاه در عوض نامش در تاریخ بماند. مادرش که می‌خواهد او عمری طولانی داشته باشد به او لباس زنانه می‌پوشاند اما در نهایت جنگجویی بزرگ می‌شود و به عبارت بهتر بزرگترین جنگجوی سراسر یونان شد. تتیس فرزندش را در کودکی در رودخانه استوکس غوطه ور ساخت و به ترتیب او رویین‌تن شد البته جز پاشنه پایش که در دست مادر بود.قبل از به دنیا آمدن آشیل، مادرش تتیس دیده بود که آشیل یا زندگی طولانی و خسته‌کننده‌ای خواهد داشت یا زندگی کوتاه اما درعوض نام او در تمام طول تاریخ به خاطر سپرده می‌شود. تتیس که ترجیح می‌داد پسرش زندگی بیشتری داشته باشد تصمیم گرفت لباسی دخترانه برتن او کند تا به دنبال جنگ نرود. اما روزی فرا رسید که اودیسئوس هوشمند آشیل را فریب داد. اودیسئوس دختران را به صف کرد و هدایای مختلفی را در جلوی آن‌ها قرار داد و آشیل تنها کسی بود که از بین هدایا شمشیر را انتخاب نمود و همین مسئله ثابت کرد او یک مرد است. تتیس آشیل نوزاد را به جهان زیرین برد و او را از پاشنه گرفته، در رود سیاه جهان مردگان یعنی استوکس فروکرد و باعث شد بدنش فناناپذیر شود.",
88
+ "question": "اشیل بزرگترین جنگ جوی کجا بود؟",
89
+ "answer": "یونان",
90
+ "title": "Example No. 15"
91
+ },
92
+ {
93
+ "context": "فرهاد مجیدی قادیکلایی مشهور به فرهاد مجیدی بازیکن فوتبال اهل ایران است. مجیدی در ۴۵ بازی ملی ۱۰ گل به ثمر رسانده‌است. او همچنین سابقه بازی در باشگاه‌های صنایع پارچین، کشاورز، بهمن کرج، استقلال و راپید وین اتریش را در کارنامه دارد. مجیدی ۷ سال سابقه حضور در لیگ امارات با تیم‌های الوصل، العین، الاهلی و النصر را دارد و یک سال نیز در تیم الغرافه قطر بازی کرده‌است. مجیدی در ۷ آبان ۱۳۹۲ در باشگاه استقلال تهران از دنیای فوتبال به عنوان بازیکن خداحافظی کرد. وی از خانواده‌ای مازندرانی و قائم‌شهری است ولی متولد و ساکن تهران است. وی یک برادر و ۲ خواهر دارد که به غیر از فرهاد، برادرش فرزاد نیز به فوتبال روی آورد. همسر وی، فرناز مؤمنی نام دارد و دارای دو فرزند به نام‌های تیام و امیر بردیا می‌باشد. فرهاد مجیدی دوران فوتبال خود را با تیم فوتبال صنایع پارچین که محل زندگی خود و کار پدرش در آنجا بود شروع کرد. نخستین تیم رسمی که فرهاد مجیدی در آن بازی کرد، تیم جوانان کشاورز بود. او بعد از مدتی بازی در این تیم به جوانان بهمن پیوست.",
94
+ "question": "فرهاد مجیدی در لیگ ام��رات برای چه باشگاه های بازی کرده؟",
95
+ "answer": "تیم‌های الوصل، العین، الاهلی و النصر",
96
+ "title": "Example No. 16"
97
+ },
98
+ {
99
+ "context": "زئوس در اساطیر یونانی، پادشاه خدایان و فرمانروای تمام زیارتگاه‌های واقع در کوه المپ است. او کوچکترین فرزند کرونوس و رئا از نژاد تیتان‌ها بود. معادل آن در اسطوره‌های رومی ژوپیتر و در دین کرتیان ولخانوس است. نام زئوس مربوط است به کلمهٔ یونانی dios به معنی «درخشان». واژه زئوس با بخش نخست واژه لاتین ژوپیتر «Jupiter» و واژه مورد کاربرد برای روز پیوند دارد. زئوس ایزد آسمان رخشان و نیز توفان به‌شمار می‌رفت و هم بدین دلیل سلاح او آذرخش بود که آن را به سمت کسی که او را ناخشنود کرده، پرتاب می‌کرده‌است. مواردی که او را بسیار خشمگین می‌کرد دروغگویی، پیمان‌شکنی و خیانت بوده‌است. از دیگر نشانه‌های او می‌توان به عصای سلطنتی، بلوط، عقاب و سپرش (ساخته شده از پوست بز آمالتئا) اشاره کرد. کرونوس، پدر زئوس، شنیده بود که توسط یکی از فرزندانش سرنگون خواهد شد. به همین دلیل فرزندان خود را می‌بلعید. اما زئوس که فرزند ششم بود توسط رئا و گایا نجات پیدا کرد. رئا سنگ بزرگی را قنداق‌پیچ کرده و به کرونوس داد، وی نیز که فکر می‌کرد این سنگ بزرگ زئوس است آن را به جای زئوس بلعید.",
100
+ "question": "چرا اسلحه زئوس آذرخش بود؟",
101
+ "answer": "ایزد آسمان رخشان و نیز توفان",
102
+ "title": "Example No. 17"
103
+ },
104
+ {
105
+ "context": "سلمان فارسی (پیش از مسلمان شدن: روزبه) (۵۶۸–۶۵۳ میلادی) صحابی ایرانی بود که پیامبر اسلام او را از خود (اهل بیت) خواند و به سلمان محمدی شهرت یافت. در ایران به اعتقاد بسیاری او یک خائن بوده، که در مقابله سپاه ساسانی برای اعراب جنگیده مخصوصا حضور او در نبرد قادسیه و کشتار ایرانیان در این نبرد و در اختیار گذاشتن بسیاری از اطلاعات سری ایران برای اعراب در زمان حمله اعراب به ایران؛ در روزی که قریش نیروهایش را نزدیک مدینه گردآورد تا بر مسلمانان حمله بَرَد (غزوه خندق)، او پیشنهاد داد تا خندقی ژرف پیرامون مدینه حفر گردد تا از آن پاسبانی شود. سلمان فارسی نزد مسلمانان به‌ویژه مسلمانان شیعه گرامی داشته می‌شود و برای او جایگاهی والا در نظر دارند. او با این که پسر یکی از دهقانان ایران بود، زرتشتی باقی نماند و سال‌ها به سرزمین‌های گوناگون سفر کرد که در همین سفرها در سرزمینی به بردگی درآمد و سپس با کمک محمد آزاد گشت. سلمان فارسی حکیمی که خرد و دانش‌های ایرانیان و مسیحیان را می‌دانست از مشاوران محمد، از جمله طراح اصلی حفر خندق در جنگ خندق بوده‌است. او در سال‌های پایانی زندگی خود استاندار (والی) مدائن گردید. وی از اولین ایرانیانی بود که اسلام را پذیرفت. در خصوص زندگی او مجموعه‌ای تلویزیونی در حال ساخت است.",
106
+ "question": "کدام مسلمانان برای سلمان فارسی جایگاه ویژه ای در نظر دارند؟",
107
+ "answer": "مسلمانان شیعه",
108
+ "title": "Example No. 18"
109
+ },
110
+ {
111
+ "context": "جِیمز کلارک ماکسوِل (زاده ۱۳ ژوئن ۱۸۳۱ در ادینبورگ – درگذشته ۵ نوامبر ۱۸۷۹ در کمبریج)، فیزیک‌دان اهل اسکاتلند بود. مهم‌ترین دستاوردهای او، فرمول‌بندی نظریه کلاسیک امواج الکترومغناطیسی و گردآوردن الکتریسیته، مغناطیس و نور برای نخستین بار در کنار هم، به عنوان جلوه‌هایی از یک پدیده، اشاره بوده‌است. معادلات ماکسول، دومین یکپارچه‌سازی بزرگ در فیزیک، پس از نخستین آن که از سوی نیوتن انجام گرفت، به‌شمار می‌رود. ماکسول با انتشار \"یک نظریه دینامیک برای میدان الکترومغناطیسی\" در سال ۱۸۶۵ نشان داد که میدان‌های الکتریکی و مغناطیسی به شکل امواجی با سرعت نور در فضا حرکت می‌کنند. او بنیان‌گذار رشته نوین مهندسی برق شناخته می‌شود. ماکسول همچنین به گسترش توزیع ماکسول–بولتزمن، روشی استاتیکی برای بیان نظریه جنبشی‌مولکولی گازها، کمک کرد. نبوغ ماکسول در ریاضیات، در دوران کودکیِ وی آشکار شد که بعدها آن را در بسیاری از حوزه‌ها به کار گرفت. او در چهارده سالگی، نوشتاری درباره بیضیها منتشر کرد. ماکسول در سال ۱۸۵۴ تحصیلات خود را به پایان رساند و بعد از تکمیل تحصیلات در دانشگاه ادینبورگ و کمبریج، نخستین استاد علوم طبیعی در دانشگاه اسکاتلند و سپس کمبریج شد.",
112
+ "question": "جیمز کلارک ماکسول کیه؟",
113
+ "answer": "فیزیک‌دان",
114
+ "title": "Example No. 19"
115
+ },
116
+ {
117
+ "context": "ولایت: به معنی دوستی و پذیرش سرپرستی خدا، پیامبران، امام و دعات(مبلغین) است. در آموزه‌های اسماعیلی، خدا می‌تواند در پیامبران و امامان تجلی کند. دعات مومنان را به راه راست رهبری و راهنمایی می‌کنند. دروزیان از این رکن با نام تسلیم نام می‌برند. طهارت: به معنی پاکیزگی است، این رکن دین از قرآن گرفته شده است. درزیان طهارت را از ارکان دین نمی‌دانند. نماز (اسلام): برخلاف مسلمانان سنی و شیعیان دوازده امامی، اسماعیلیان معتقدند که تعیین شیوه صحیح نماز خواندن برعهده امام حاضر است. شیوه نماز خواندن امروز نزاریان، از قدیم تغییری نکرده و مانند دیگر مسلمانان نماز ۵ بار در روز و ۱۷ رکعت می خوانند که نماز صبح ۲ رکعت نماز ظهر و عصر که با هم می باشد هر کدام چهار رکعت و نماز مغرب ۳ رکعت که با نماز عشا که ۴ رکعت است با هم می خوانند و پس از خواندن سوره ی فاتحه در نماز یا هم برخی پس از خواندن نماز دعایی مخصوص را می خوانند . درزیان، معنای نماز را صدق لسان(معنی لغوی زبان راست است ولی معنی این عبارت یاد نیک است) می‌دانند و شیوه خاصی برای نماز خواندن ندارند. ایشان نماز را به شیوه دیگر مسلمانان، سیره جهال می‌دانند؛ اما به لحاظ تاریخی، شرکت در نماز جماعت را برای تقیه جایز می‌دانند.",
118
+ "question": "رکن طهارت از کجا گرفته شده است؟",
119
+ "answer": "این رکن دین از قرآن گرفته شده است",
120
+ "title": "Example No. 20"
121
+ },
122
+ {
123
+ "context": "هواپیمایی ماهان شرکت هواپیمایی خصوصی ایرانی است و آشیانه اصلی این شرکت در شهر کرمان قرار دارد. این شرکت در سال ۱۳۷۱ در کرمان تأسیس گردید و نام ماهان ایر نیز برگرفته از ماهان شهری در ۳۵ کیلومتری کرمان است. سهام‌دار عمدهٔ این شرکت مؤسسه خیریه مولی‌الموحدین است. شرکت هواپیمایی ماهان هم‌اکنون ناوگانی متشکل از ۳۷ فروند هواپیمای مسافربری و باری را در اختیار دارد و روزانه به ۲۰ مقصد، در اروپا، آسیا و خاورمیانه، پروازهای مستقیم دارد. این شرکت هواپیمایی از سال ۲۰۱۱ به دلیل خدمات‌رسانی به سپاه پاسداران، تحت تحریم آمریکا، و از ۲۰۱۹ با ممنوعیت پرواز آلمان و فرانسه قرار دارد. برخی منابع هواپیمایی ماهان را عامل انتقال ویروس کرونا به ایران می‌دانند. شرکت هواپیمایی ماهان، به مرکزیت شهر تهران، از لحاظ ناوگان هوایی و مسافر حمل شده به عنوان بزرگترین شرکت هواپیمایی ایران به‌شمار می‌آید. این شرکت در سال ۱۳۷۱ با برخورداری از دو فروند هواپیمای مسافربری، تأسیس گردید. در سال ۱۳۷۸ اولین هواپیمای ایرباس ای۳۰۰ به ناوگان هواپیمایی ماهان ملحق گردید و در سال ۱۳۷۹ به عضویت در انجمن بین‌المللی حمل‌ونقل هوایی (یاتا) پیوست.",
124
+ "question": "شرکت هواپیمایی ماهان به چند جا پرواز مستقیم داره؟",
125
+ "answer": "۲۰ مقصد، در اروپا، آسیا و خاورمیانه",
126
+ "title": "Example No. 21"
127
+ },
128
+ {
129
+ "context": "ژن، در ژنتیک مندلی و ژنتیک مولکولی کلاسیک, همچنین در مبحث تکامل و در دوران پساژنگان تعاریف متفاوتی دارد اما از دیدگاه مولکولی کلاسیک دنباله‌ای از نوکلوئوتیدهاست که در برگیرنده اطلاعات لازم جهت تولید مولوکول‌های RNA و یا پروتئین‌های لازم برای سلول هستند. هر ژن در بخشی از DNA سلول وجود دارد.یا با تعریفی دیگر ژن بخشی از مولکول دی ان ای می باشد که روی یک رشته از آن قرار دارد. درون سلول‌ها، طی فرایند رونویسی ژن‌ها به مولکول‌های RNA تبدیل می‌شوند که یا به شکل مستقیم در سلول استفاده می‌شوند و یا دربرگیرنده اطلاعاتی جهت تولید پروتئین هستند و طی فرایند ترجمه، پروتئین مربوط به آن‌ها ساخته می‌شود. ژن‌ها می‌توانند دچار جهش شوند، که تغییری در توالی دنباله آن‌هاست. جهش‌ها باعث ایجاد تغییر در پروتئین‌های تولید شده از روی ژن‌ها می‌شوند و می‌توانند عملکرد پروتئین را به کلی تغییر دهند و باعث به وجود آمدن صفاتی جدید در سلول بشوند. ژن‌ها در اثر جهش‌های ژنتیکی، براساس انتخاب طبیعی تکامل پیدا می‌کنند و ژن‌های قوی‌تر و بهتر به مرور جایگزین ژن‌های قبلی می‌شوند.",
130
+ "question": "به تغییراتی که در توالی دنباله ژن ها اتفاق می افتد چه می گویند؟",
131
+ "answer": "جهش",
132
+ "title": "Example No. 22"
133
+ },
134
+ {
135
+ "context": "زئوس در اساطیر یونانی، پادشاه خدایان و فرمانروای تمام زیارتگاه‌های واقع در کوه المپ است. او کوچکترین فرزند کرونوس و رئا از نژاد تیتان‌ها بود. معادل آن در اسطوره‌های رومی ژوپیتر و در دین کرتیان ولخانوس است. نام زئوس مربوط است به کلمهٔ یونانی dios به معنی «درخشان». واژه زئوس با بخش نخست واژه لاتین ژوپیتر «Jupiter» و واژه مورد کاربرد برای روز پیوند دارد. زئوس ایزد آسمان رخشان و نیز توفان به‌شمار می‌رفت و هم بدین دلیل سلاح او آذرخش بود که آن را به سمت کسی که او را ناخشنود کرده، پرتاب می‌کرده‌است. مواردی که او را بسیار خشمگین می‌کرد دروغگویی، پیمان‌شکنی و خیانت بوده‌است. از دیگر نشانه‌های او می‌توان به عصای سلطنتی، بلوط، عقاب و سپرش (ساخته شده از پوست بز آمالتئا) اشاره کرد. کرونوس، پدر زئوس، شنیده بود که توسط یکی از فرزندانش سرنگون خواهد شد. به همین دلیل فرزندان خود را می‌بلعید. اما زئوس که فرزند ششم بود توسط رئا و گایا نجات پیدا کرد. رئا سنگ بزرگی را قنداق‌پیچ کرده و به کرونوس داد، وی نیز که فکر می‌کرد این سنگ بزرگ زئوس است آن را به جای زئوس بلعید.",
136
+ "question": "چرا اسلحه زئوس آذرخش بود؟",
137
+ "answer": "ایزد آسمان رخشان و نیز توفان",
138
+ "title": "Example No. 23"
139
+ },
140
+ {
141
+ "context": "ابرشرکت تویوتا موتور یک ابرشرکت چندملیتی ژاپنی سازندهٔ خودرو، ماشین‌آلات و پیشرانه مستقر در شهر تویوتا در استان آیچی ژاپن است. نخستین خط تولید خودرو شرکت تویوتا در سال ۱۹۳۷ توسط کیشیرو تویودا و در کارخانه شرکت نساجی صنایع تویوتا، که متعلق به پدر وی (ساکیشی تویودا) بود، راه‌اندازی شد. نخستین خودروی سواری این شرکت تویوتا ای‌ای نام داشت. ابرشرکت تویوتا دارندهٔ برندهای دینا، دایهاتسو، سایون، لکسوس و هینو موتورز نیز می‌باشد که هم‌اکنون به‌عنوان بزرگترین خودروساز جهان شناخته می‌شود. سهام این شرکت در بازار بورس نیویورک، بورس لندن و بورس توکیو معامله می‌شود. ریشه‌های تأسیس شرکت خودروسازی تویوتا، به سال ۱۹۲۶ بازمی‌گردد، که ساکیشی تویودا، اقدام به راه‌اندازی شرکت صنایع تویوتا نمود. پیشینه این شرکت، که در صنعت نساجی فعالیت می‌کرد نیز، به ابتدای قرن بیستم بازمی‌گردد، که به عنوان یک کارخانه ریسندگی فعالیت می‌نمود. ساکیشی تویودا، که سال‌ها همچون پدرش، به فروش فرش اشتغال داشت، این کارخانه را راه‌انداخته بود و در سال ۱۸۹۴ یک ماشین بافندگی صنعتی نیز ابداع کرده و ساخته بود.",
142
+ "question": "اولین ماشینی که تویوتا ساخت چی بود؟",
143
+ "answer": "تویوتا ای‌ای",
144
+ "title": "Example No. 24"
145
+ },
146
+ {
147
+ "context": "سازمان آموزشی، علمی و فرهنگی سازمان ملل متحد (یونسکو) یک سازمان تخصصی سازمان ملل متحد است که با هدف کمک به «ایجاد صلح، ریشه کن کردن فقر، توسعه پایدار و گفتگوی بین فرهنگی از طریق آموزش، علوم، فرهنگ، ارتباطات و اطلاعات» به وجود آمده‌است و جانشین کمیته بین‌المللی همکاری اندیشمندانه جامعه ملل است. یونسکو ۱۹۳ کشور عضو رسمی و ۱۱ عضو وابسته دارد. اکثر دفاتر آن در پاریس، فرانسه، مستقر است افزون بر این مراکز، دفاتر ملی و منطقه ای نیز وجود دارد. یونسکو به دنبال ایجاد فرهنگ صلح و دانش فراگیر از طریق اطلاعات و ارتباطات است. برای این منظور، اهداف خود را از طریق پنج حوزه اصلی دنبال می‌کند: آموزش، علوم طبیعی، علوم اجتماعی / انسانی، فرهنگ و ارتباطات / اطلاعات. این برنامه از پروژه‌های مرتبط با سواد، آموزش فنی، آموزش، پیشرفت علم، ترویج رسانه‌های مستقل و آزادی مطبوعات، حفظ تاریخ منطقه ای و فرهنگی و ترویج تنوع فرهنگی حمایت می‌کند . یونسکو در ترجمه و ترویج ادبیات جهان، ایجاد توافق‌نامه‌های همکاری بین‌المللی برای تأمین امنیت \" میراث جهانی \" از اهمیت فرهنگی و طبیعی، حفظ حقوق بشر و پل زدن شکاف دیجیتال در سراسر جهان کمک می‌کند. این برنامه همچنین جنبش آموزش برای همه و علم‌آموزی تمام عمر را راه اندازی و رهبری می‌کند.",
148
+ "question": "یونسکو از طریق چی اهدافش رو اجرا می کنه؟",
149
+ "answer": "آموزش، علوم، فرهنگ، ارتباطات و اطلاعات",
150
+ "title": "Example No. 25"
151
+ }
152
+ ]
meta.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ HEADER_INFO = """
2
+ # GPT2 QA - Persian
3
+ """.strip()
4
+ SIDEBAR_INFO = """
5
+ # Configuration
6
+ """.strip()
7
+ C_PROMPT_BOX = "متن خود را وارد کنید ..."
8
+ Q_PROMPT_BOX = "پرسش خود را مطرح کنید ..."
9
+ A_PROMPT_BOX = "وارد نشده."
normalizer.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import hazm
2
+ import re
3
+
4
+ from regexes.currency import CURRENCY_REGEX
5
+ from regexes.email import EMAIL_REGEX
6
+ from regexes.latin import LATIN_REGEX
7
+ from regexes.number import NUMBERS_REGEX
8
+ from regexes.phone import PHONE_REGEX
9
+ from regexes.quote import DOUBLE_QUOTE_REGEX, SINGLE_QUOTE_REGEX
10
+ from regexes.url import URL_REGEX
11
+ from regexes.persian import PERSIAN_REGEX
12
+ import dictionary
13
+
14
+
15
+ def make_trans(list_a, list_b):
16
+ return dict((ord(a), b) for a, b in zip(list_a, list_b))
17
+
18
+
19
+ def multiple_replace(text, chars_to_mapping):
20
+ pattern = "|".join(map(re.escape, chars_to_mapping.keys()))
21
+ return re.sub(pattern, lambda m: chars_to_mapping[m.group()], str(text))
22
+
23
+
24
+ ar2fa_digits = make_trans("٠١٢٣٤٥٦٧٨٩٪", "۰۱۲۳۴۵۶۷۸۹٪")
25
+ fa2en_digits = make_trans("۰۱۲۳۴۵۶۷۸۹٪", "0123456789%")
26
+ normalizer = hazm.Normalizer(persian_numbers=True, punctuation_spacing=False)
27
+
28
+
29
+ def normalize(text, zwnj="\u200c", tokenized=False):
30
+ text = text.replace("\n", " ").replace("\t", " ")
31
+ text = re.sub(r"\u200c+", "\u200c", text)
32
+ text = text.replace('ـ', '')
33
+ text = normalizer.normalize(text)
34
+
35
+ if len(dictionary.characters) > 0:
36
+ text = multiple_replace(text, dictionary.characters)
37
+
38
+ if len(dictionary.words_map) > 0:
39
+ text = multiple_replace(text, dictionary.words_map)
40
+
41
+ text = text.translate(ar2fa_digits)
42
+ text = text.translate(fa2en_digits)
43
+
44
+ text = SINGLE_QUOTE_REGEX.sub("'", text)
45
+ text = DOUBLE_QUOTE_REGEX.sub('"', text)
46
+ text = CURRENCY_REGEX.sub(r" \1 ", text)
47
+ text = URL_REGEX.sub(" ", text)
48
+ text = EMAIL_REGEX.sub(" ", text)
49
+ text = PHONE_REGEX.sub(r" \1 ", text)
50
+ text = NUMBERS_REGEX.sub(r" \1 ", text)
51
+ text = LATIN_REGEX.sub(r" \1 ", text)
52
+
53
+ # Allow only english and persian characters
54
+ text = re.sub(PERSIAN_REGEX, " ", text)
55
+
56
+ text = text.replace(f" {zwnj} ", f"{zwnj}")
57
+ text = text.replace(f"{zwnj} ", f"{zwnj}")
58
+ text = text.replace(f" {zwnj}", f"{zwnj}")
59
+
60
+ if len(dictionary.special_tokens) > 0:
61
+ text = multiple_replace(text, dictionary.special_tokens)
62
+
63
+ tokens = []
64
+ for token in text.split():
65
+ token = token.strip()
66
+ if token:
67
+ if token.startswith(zwnj) and token.endswith(zwnj):
68
+ token = token[1:-1]
69
+ if token.startswith(zwnj):
70
+ token = token[1:]
71
+ elif token.endswith(zwnj):
72
+ token = token[:-1]
73
+ else:
74
+ token = token
75
+
76
+ tokens.append(token)
77
+
78
+ if tokenized:
79
+ return tokens
80
+
81
+ return " ".join(tokens)
regexes/__init__.py ADDED
File without changes
regexes/currency.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+ CURRENCIES = {
4
+ "$": "USD",
5
+ "zł": "PLN",
6
+ "£": "GBP",
7
+ "¥": "JPY",
8
+ "฿": "THB",
9
+ "₡": "CRC",
10
+ "₦": "NGN",
11
+ "₩": "KRW",
12
+ "₪": "ILS",
13
+ "₫": "VND",
14
+ "€": "EUR",
15
+ "₱": "PHP",
16
+ "₲": "PYG",
17
+ "₴": "UAH",
18
+ "₹": "INR",
19
+ "﷼": "IRR",
20
+ }
21
+ CURRENCY_REGEX = re.compile(
22
+ "({})+".format("|".join(re.escape(c) for c in CURRENCIES.keys()))
23
+ )
regexes/email.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import re
2
+
3
+ EMAIL_REGEX = re.compile(
4
+ r"(?:^|(?<=[^\w@.)]))([\w+-](\.(?!\.))?)*?[\w+-](@|[(<{\[]at[)>}\]])(?:(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\.(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\.(?:[a-z\\u00a1-\\uffff]{2,}))",
5
+ flags=re.IGNORECASE | re.UNICODE,
6
+ )
regexes/latin.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+ LATIN_WITH_SPECIAL_REGEX = re.compile(
4
+ r"(\b(?!URL|EMAIL|PHONE|NUMBER|CUR|LATIN\b)[0-9a-zA-Z]+)"
5
+ )
6
+
7
+ LATIN_REGEX = re.compile(
8
+ r"([0-9a-zA-Z]+)"
9
+ )
10
+
11
+ LATIN_SPACES_REGEX = re.compile(
12
+ r"([0-9a-zA-Z])"
13
+ )
regexes/number.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import re
2
+
3
+ NUMBERS_REGEX = re.compile(
4
+ r"(?:^|(?<=[^\w,.]))[+–-]?(([1-9]\d{0,2}(,\d{3})+(\.\d*)?)|([1-9]\d{0,2}([ .]\d{3})+(,\d*)?)|(\d*?[.,]\d+)|\d+)(?:$|(?=\b))"
5
+ )
regexes/persian.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+
4
+ PERSIAN_ALPHA = "ءآئابتثجحخدذرزسشصضطظعغفقلمنهوپچژکگیە" # noqa: E501
5
+ PERSIAN_DIGIT = "۰۱۲۳۴۵۶۷۸۹"
6
+
7
+
8
+ ZWNJ = "\u200c"
9
+ PUNK = '\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\]\^\_\`\{\|\}\~\«\»\؟\:\×\٬\٫\﷼\٪\،'
10
+
11
+ PERSIAN = (
12
+ "a-zA-Z0-9" +
13
+ PERSIAN_ALPHA +
14
+ PERSIAN_DIGIT +
15
+ ZWNJ +
16
+ PUNK
17
+ )
18
+
19
+ PERSIAN_REGEX = r"[^" + PERSIAN + "+]"
regexes/phone.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import re
2
+
3
+
4
+ PHONE_REGEX = re.compile(
5
+ r"((?:^|(?<=[^\w)]))(((\+?[01])|(\+\d{2}))[ .-]?)?(\(?\d{3,4}\)?/?[ .-]?)?(\d{3}[ .-]?\d{4})(\s?(?:ext\.?|[#x-])\s?\d{2,6})?(?:$|(?=\W)))|\+?\d{4,5}[ .-/]\d{6,9}"
6
+ )
regexes/punk.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import re
2
+
3
+ PUNK_REGEX = re.compile(
4
+ r"([\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\=\?\@\[\\\]\^\_\`\{\|\}\~\«\»\⸮\؟\،\٬\٫\؛])"
5
+ )
regexes/quote.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+
4
+ strange_double_quotes = [
5
+ "«",
6
+ "‹",
7
+ "»",
8
+ "›",
9
+ "„",
10
+ "“",
11
+ "‟",
12
+ "”",
13
+ "❝",
14
+ "❞",
15
+ "❮",
16
+ "❯",
17
+ "〝",
18
+ "〞",
19
+ "〟",
20
+ """,
21
+ ]
22
+ strange_single_quotes = ["‘", "‛", "’", "❛", "❜", "`", "´", "‘", "’"]
23
+
24
+ DOUBLE_QUOTE_REGEX = re.compile("|".join(strange_double_quotes))
25
+ SINGLE_QUOTE_REGEX = re.compile("|".join(strange_single_quotes))
regexes/url.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+
3
+ URL_REGEX = re.compile(
4
+ r"(?:^|(?<![\w\/\.]))"
5
+ # protocol identifier
6
+ # r"(?:(?:https?|ftp)://)" <-- alt?
7
+ r"(?:(?:https?:\/\/|ftp:\/\/|www\d{0,3}\.))"
8
+ # user:pass authentication
9
+ r"(?:\S+(?::\S*)?@)?" r"(?:"
10
+ # IP address exclusion
11
+ # private & local networks
12
+ r"(?!(?:10|127)(?:\.\d{1,3}){3})"
13
+ r"(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})"
14
+ r"(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})"
15
+ # IP address dotted notation octets
16
+ # excludes loopback network 0.0.0.0
17
+ # excludes reserved space >= 224.0.0.0
18
+ # excludes network & broadcast addresses
19
+ # (first & last IP address of each class)
20
+ r"(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])"
21
+ r"(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}"
22
+ r"(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))"
23
+ r"|"
24
+ # host name
25
+ r"(?:(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)"
26
+ # domain name
27
+ r"(?:\.(?:[a-z\\u00a1-\\uffff0-9]-?)*[a-z\\u00a1-\\uffff0-9]+)*"
28
+ # TLD identifier
29
+ r"(?:\.(?:[a-z\\u00a1-\\uffff]{2,}))" r"|" r"(?:(localhost))" r")"
30
+ # port number
31
+ r"(?::\d{2,5})?"
32
+ # resource path
33
+ r"(?:\/[^\)\]\}\s]*)?",
34
+ # r"(?:$|(?![\w?!+&\/\)]))",
35
+ # @jfilter: I removed the line above from the regex because I don't understand what it is used for, maybe it was useful?
36
+ # But I made sure that it does not include ), ] and } in the URL.
37
+ flags=re.UNICODE | re.IGNORECASE,
38
+ )
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ streamlit
2
+ hazm
3
+ Pillow
4
+ mtranslate
5
+ torch
6
+ transformers
utils.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import json
3
+ from PIL import Image
4
+
5
+
6
+ def load_image(image_path, image_resize=None):
7
+ image = Image.open(image_path)
8
+ if isinstance(image_resize, tuple):
9
+ image.resize(image_resize)
10
+ return image
11
+
12
+
13
+ def load_text(text_path):
14
+ text = ''
15
+ with open(text_path) as f:
16
+ text = f.read()
17
+
18
+ return text
19
+
20
+
21
+ def load_json(json_path):
22
+ jdata = ''
23
+ with open(json_path) as f:
24
+ jdata = json.load(f)
25
+
26
+ return jdata
27
+
28
+
29
+ def local_css(css_path):
30
+ with open(css_path) as f:
31
+ st.markdown(f'<style>{f.read()}</style>', unsafe_allow_html=True)
32
+
33
+
34
+ def remote_css(css_url):
35
+ st.markdown(f'<link href="{css_url}" rel="stylesheet">', unsafe_allow_html=True)