Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
2
2023-118
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2023-118
2023-118
Commits
2df7ff9b
Commit
2df7ff9b
authored
Aug 24, 2023
by
W.G.G.A. Supun Sameera
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated for new version
parent
6db50786
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
550 additions
and
58 deletions
+550
-58
sinlingua/grammar_rule/LLM_config.py
sinlingua/grammar_rule/LLM_config.py
+13
-14
sinlingua/grammar_rule/grammar_main.py
sinlingua/grammar_rule/grammar_main.py
+3
-1
sinlingua/grammar_rule/grammar_rules.py
sinlingua/grammar_rule/grammar_rules.py
+9
-12
sinlingua/grammar_rule/mask.py
sinlingua/grammar_rule/mask.py
+2
-2
sinlingua/grammar_rule/rule_based_1.py
sinlingua/grammar_rule/rule_based_1.py
+2
-3
sinlingua/grammar_rule/rule_based_2.py
sinlingua/grammar_rule/rule_based_2.py
+2
-2
sinlingua/grammar_rule/rule_based_3.py
sinlingua/grammar_rule/rule_based_3.py
+2
-2
sinlingua/grammar_rule/rule_based_4.py
sinlingua/grammar_rule/rule_based_4.py
+2
-2
sinlingua/grammar_rule/rule_based_future_1.py
sinlingua/grammar_rule/rule_based_future_1.py
+2
-2
sinlingua/grammar_rule/rule_based_past_1.py
sinlingua/grammar_rule/rule_based_past_1.py
+2
-2
sinlingua/grammar_rule/rule_based_past_2.py
sinlingua/grammar_rule/rule_based_past_2.py
+2
-2
sinlingua/grammar_rule/rule_based_past_3.py
sinlingua/grammar_rule/rule_based_past_3.py
+2
-2
sinlingua/grammar_rule/rule_based_plural.py
sinlingua/grammar_rule/rule_based_plural.py
+3
-4
sinlingua/grammar_rule/rule_based_plural_past.py
sinlingua/grammar_rule/rule_based_plural_past.py
+3
-4
sinlingua/grammar_rule/rule_based_singular.py
sinlingua/grammar_rule/rule_based_singular.py
+3
-4
sinlingua/src/grammar_rule_resources.py
sinlingua/src/grammar_rule_resources.py
+498
-0
No files found.
sinlingua/grammar_rule/LLM_config.py
View file @
2df7ff9b
...
...
@@ -4,28 +4,27 @@ import openai
import
json
import
time
import
requests
from
sinlingua.
config
import
RESOURCE_PATH
from
sinlingua.
src.grammar_rule_resources
import
grammar_rule_llm_config
class
LLMConfig
:
def
__init__
(
self
,
api_key
:
str
=
None
,
org_key
:
str
=
None
):
config_file
=
"conversion_config.json"
self
.
json_data
=
self
.
__read_json_config
(
file_path
=
config_file
)
self
.
json_data
=
grammar_rule_llm_config
if
api_key
is
not
None
and
org_key
is
not
None
:
self
.
json_data
[
"api_key"
]
=
api_key
self
.
json_data
[
"org_key"
]
=
org_key
@
staticmethod
def
__read_json_config
(
file_path
:
str
)
->
dict
:
try
:
# Read JSON configuration file and return the data as dictionary
with
open
(
os
.
path
.
join
(
RESOURCE_PATH
,
file_path
),
'r'
,
encoding
=
'utf-8'
)
as
json_file
:
json_data_c
=
json
.
load
(
json_file
)
return
json_data_c
except
Exception
as
e
:
# Handle exceptions while reading JSON configuration
print
(
f
"Error while reading JSON configuration file '{file_path}': {str(e)}"
)
return
{}
#
@staticmethod
#
def __read_json_config(file_path: str) -> dict:
#
try:
#
# Read JSON configuration file and return the data as dictionary
#
with open(os.path.join(RESOURCE_PATH, file_path), 'r', encoding='utf-8') as json_file:
#
json_data_c = json.load(json_file)
#
return json_data_c
#
except Exception as e:
#
# Handle exceptions while reading JSON configuration
#
print(f"Error while reading JSON configuration file '{file_path}': {str(e)}")
#
return {}
def
__get_llm_response
(
self
,
text
:
str
,
level
:
int
)
->
str
:
completion
=
None
...
...
sinlingua/grammar_rule/grammar_main.py
View file @
2df7ff9b
...
...
@@ -160,7 +160,9 @@ class GrammarMain:
# if __name__ == "__main__":
# obj = GrammarMain()
# obj = GrammarMain()
# out = obj.mapper(sentence="ඇය මල් නෙලුවා")
# print(out)
# sent = "මා කෝප්පෙන් වතුර බිව්වා"
# out = obj.mapper(sentence=sent)
# print(out)
...
...
sinlingua/grammar_rule/grammar_rules.py
View file @
2df7ff9b
import
os
from
fuzzywuzzy
import
fuzz
from
googletrans
import
Translator
from
sinlingua.config
import
RESOURCE_PATH
class
GrammarRules
:
@
staticmethod
def
find_similar_words
(
file_path
,
input_string
):
def
find_similar_words
(
list_items
,
input_string
):
words
=
input_string
.
split
()
max_similarity
=
0
similar_word
=
None
actual_word_of_string
=
None
with
open
(
os
.
path
.
join
(
RESOURCE_PATH
,
file_path
),
'r'
,
encoding
=
'utf-8'
)
as
file
:
for
line
in
file
:
line
=
line
.
strip
()
# Remove leading/trailing whitespace
for
word
in
words
:
similarity_ratio
=
fuzz
.
ratio
(
word
,
line
)
if
similarity_ratio
>=
75
and
similarity_ratio
>
max_similarity
:
max_similarity
=
similarity_ratio
similar_word
=
line
actual_word_of_string
=
word
for
line
in
list_items
:
line
=
line
.
strip
()
# Remove leading/trailing whitespace
for
word
in
words
:
similarity_ratio
=
fuzz
.
ratio
(
word
,
line
)
if
similarity_ratio
>=
75
and
similarity_ratio
>
max_similarity
:
max_similarity
=
similarity_ratio
similar_word
=
line
actual_word_of_string
=
word
return
similar_word
,
actual_word_of_string
,
max_similarity
def
common_function
(
self
,
sentence
):
...
...
sinlingua/grammar_rule/mask.py
View file @
2df7ff9b
import
requests
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.grammar_rule.LLM_config
import
LLMConfig
from
sinlingua.src.grammar_rule_resources
import
verbs
class
PredictNoun
(
GrammarRules
):
...
...
@@ -10,8 +11,7 @@ class PredictNoun(GrammarRules):
grammar_obj
=
GrammarRules
()
global
conjugated_sentence
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
ratio
=
returned_string_verb
[
2
]
...
...
sinlingua/grammar_rule/rule_based_1.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs
class
FirstPerson
(
GrammarRules
):
def
common_function
(
self
,
sentence
):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
# call the function find verb of sentence
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
...
...
sinlingua/grammar_rule/rule_based_2.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs
class
SecondPersonSingular
(
GrammarRules
):
...
...
@@ -8,8 +9,7 @@ class SecondPersonSingular(GrammarRules):
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
# call the function find verb of sentence
# returned_string_verb = find_similar_words(file_path_for_verb, sentence)
verb_checked
=
returned_string_verb
[
0
]
...
...
sinlingua/grammar_rule/rule_based_3.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs
class
SecondPersonPlural
(
GrammarRules
):
...
...
@@ -7,8 +8,7 @@ class SecondPersonPlural(GrammarRules):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
ratio
=
returned_string_verb
[
2
]
...
...
sinlingua/grammar_rule/rule_based_4.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs
class
FourthPerson
(
GrammarRules
):
...
...
@@ -7,8 +8,7 @@ class FourthPerson(GrammarRules):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/question_verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
# call the function find verb of sentence
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
...
...
sinlingua/grammar_rule/rule_based_future_1.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs_2f
class
FirstPersonFuture
(
GrammarRules
):
...
...
@@ -7,8 +8,7 @@ class FirstPersonFuture(GrammarRules):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs_2f.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs_2f
,
sentence
)
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
ratio
=
returned_string_verb
[
2
]
...
...
sinlingua/grammar_rule/rule_based_past_1.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
past_verbs
class
PastFirstPerson
(
GrammarRules
):
...
...
@@ -7,8 +8,7 @@ class PastFirstPerson(GrammarRules):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb_past
=
'IT20167264/word_set/past_verbs.text'
returned_string_verb_past
=
grammar_obj
.
find_similar_words
(
file_path_for_verb_past
,
sentence
)
returned_string_verb_past
=
grammar_obj
.
find_similar_words
(
past_verbs
,
sentence
)
# call the function find verb of sentence
verb_checked_past
=
returned_string_verb_past
[
0
]
actual_word_past
=
returned_string_verb_past
[
1
]
...
...
sinlingua/grammar_rule/rule_based_past_2.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
past_verbs
class
PastSecondPersonSingular
(
GrammarRules
):
...
...
@@ -8,8 +9,7 @@ class PastSecondPersonSingular(GrammarRules):
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/past_verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
past_verbs
,
sentence
)
# call the function find verb of sentence
# returned_string_verb = find_similar_words(file_path_for_verb, sentence)
verb_checked
=
returned_string_verb
[
0
]
...
...
sinlingua/grammar_rule/rule_based_past_3.py
View file @
2df7ff9b
from
fuzzywuzzy
import
fuzz
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
past_verbs
class
PastSecondPersonPlural
(
GrammarRules
):
...
...
@@ -7,8 +8,7 @@ class PastSecondPersonPlural(GrammarRules):
global
conjugated_sentence
grammar_obj
=
GrammarRules
()
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/past_verbs.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
past_verbs
,
sentence
)
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
ratio
=
returned_string_verb
[
2
]
...
...
sinlingua/grammar_rule/rule_based_plural.py
View file @
2df7ff9b
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
,
translate_sinhala_to_english
from
googletrans
import
Translator
from
sinlingua.src.grammar_rule_resources
import
verbs
,
nouns_subject_plural
class
PluralSubject
(
GrammarRules
):
...
...
@@ -8,13 +9,11 @@ class PluralSubject(GrammarRules):
global
conjugated_sentence
prefixes
=
[
"මා"
,
"අපි"
,
"මම"
,
"ම"
,
"අප"
,
"ඔහු"
,
"ඇය"
,
"ඈ"
,
"ඔවුන්"
,
"ඔවුහු"
]
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
file_path_for_subject
=
'IT20167264/word_set/nouns_subject_plural.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
newsentence
=
sentence
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
returned_string_subject
=
grammar_obj
.
find_similar_words
(
file_path_for_subject
,
sentence
)
returned_string_subject
=
grammar_obj
.
find_similar_words
(
nouns_subject_plural
,
sentence
)
subject_checked
=
returned_string_subject
[
0
]
actual_subject
=
returned_string_subject
[
1
]
ratio
=
returned_string_subject
[
2
]
...
...
sinlingua/grammar_rule/rule_based_plural_past.py
View file @
2df7ff9b
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
,
translate_sinhala_to_english
from
googletrans
import
Translator
from
sinlingua.src.grammar_rule_resources
import
past_verbs
,
nouns_subject_plural
class
PluralSubjectPast
(
GrammarRules
):
...
...
@@ -8,13 +9,11 @@ class PluralSubjectPast(GrammarRules):
global
conjugated_sentence
prefixes
=
[
"මා"
,
"අපි"
,
"මම"
,
"ම"
,
"අප"
,
"ඔහු"
,
"ඇය"
,
"ඈ"
,
"ඔවුන්"
,
"ඔවුහු"
]
conjugated_verb
=
''
file_path_for_verb_past
=
'IT20167264/word_set/past_verbs.text'
file_path_for_subject_past
=
'IT20167264/word_set/nouns_subject_plural.text'
wordlist
=
sentence
.
split
()
returned_string_verb_past
=
grammar_obj
.
find_similar_words
(
file_path_for_verb_past
,
wordlist
[
-
1
])
returned_string_verb_past
=
grammar_obj
.
find_similar_words
(
past_verbs
,
wordlist
[
-
1
])
verb_checked_past
=
returned_string_verb_past
[
0
]
actual_word_past
=
returned_string_verb_past
[
1
]
returned_string_subject_past
=
grammar_obj
.
find_similar_words
(
file_path_for_subject_past
,
wordlist
[
0
])
returned_string_subject_past
=
grammar_obj
.
find_similar_words
(
nouns_subject_plural
,
wordlist
[
0
])
subject_checked_past
=
returned_string_subject_past
[
0
]
actual_subject_past
=
returned_string_subject_past
[
1
]
ratio
=
returned_string_subject_past
[
2
]
...
...
sinlingua/grammar_rule/rule_based_singular.py
View file @
2df7ff9b
from
sinlingua.grammar_rule.grammar_rules
import
GrammarRules
from
sinlingua.src.grammar_rule_resources
import
verbs
,
nouns_subject_singular
class
SingularSubject
(
GrammarRules
):
...
...
@@ -7,12 +8,10 @@ class SingularSubject(GrammarRules):
global
conjugated_sentence
prefixes
=
[
"මා"
,
"අපි"
,
"මම"
,
"ම"
,
"අප"
,
"ඔහු"
,
"ඇය"
,
"ඈ"
,
"ඔවුන්"
,
"ඔවුහු"
]
conjugated_verb
=
''
file_path_for_verb
=
'IT20167264/word_set/verbs.text'
file_path_for_subject
=
'IT20167264/word_set/nouns_subject_singular.text'
returned_string_verb
=
grammar_obj
.
find_similar_words
(
file_path_for_verb
,
sentence
)
returned_string_verb
=
grammar_obj
.
find_similar_words
(
verbs
,
sentence
)
verb_checked
=
returned_string_verb
[
0
]
actual_word
=
returned_string_verb
[
1
]
returned_string_subject
=
grammar_obj
.
find_similar_words
(
file_path_for_subject
,
sentence
)
returned_string_subject
=
grammar_obj
.
find_similar_words
(
nouns_subject_singular
,
sentence
)
subject_checked
=
returned_string_subject
[
0
]
actual_subject
=
returned_string_subject
[
1
]
ratio
=
returned_string_subject
[
2
]
...
...
sinlingua/src/grammar_rule_resources.py
0 → 100644
View file @
2df7ff9b
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment