mirror of
https://github.com/RPG-Research/bcirpg.git
synced 2024-04-16 14:23:01 +00:00
Made some changes to the natural language algorith, to imporve the correction of grammar. It still needs work with H words and the exceptions list related to AN.
This commit is contained in:
parent
0272a3821d
commit
24b1d2c772
@ -0,0 +1,3 @@
|
|||||||
|
[folding]
|
||||||
|
|
||||||
|
sections_unfolded=PackedStringArray()
|
@ -0,0 +1,3 @@
|
|||||||
|
[folding]
|
||||||
|
|
||||||
|
sections_unfolded=PackedStringArray()
|
@ -16,11 +16,11 @@ dock_5="Inspector,Node,History"
|
|||||||
|
|
||||||
[EditorNode]
|
[EditorNode]
|
||||||
|
|
||||||
open_scenes=["res://screens/MainMenu.tscn", "res://GenresSubstitution/TestDB.tscn", "res://Dialog/TestDialog.tscn", "res://Grammar/GrammarTest.tscn"]
|
open_scenes=["res://Grammar/GrammarTest.tscn"]
|
||||||
|
|
||||||
[ScriptEditor]
|
[ScriptEditor]
|
||||||
|
|
||||||
open_scripts=["res://Dialog/dialog_system.gd", "res://GenresSubstitution/genre_sub.gd", "res://Grammar/GrammarTest.gd"]
|
open_scripts=["res://Dialog/dialog_system.gd", "res://Grammar/ExceptionsForA.json", "res://Grammar/ExceptionsForAn.json", "res://GenresSubstitution/genre_sub.gd", "res://Grammar/GrammarTest.gd"]
|
||||||
open_help=[]
|
open_help=[]
|
||||||
script_split_offset=150
|
script_split_offset=150
|
||||||
list_split_offset=0
|
list_split_offset=0
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
2a60927148abd1d33b818b535e306557
|
2a60927148abd1d33b818b535e306557
|
||||||
::res://::1685898397
|
::res://::1685901083
|
||||||
default_env.tres::Environment::-1::1685898240::0::1::::<><>::
|
default_env.tres::Environment::-1::1685898240::0::1::::<><>::
|
||||||
icon.png::CompressedTexture2D::1663579034843721578::1685898240::1685898240::1::::<><>::
|
icon.png::CompressedTexture2D::1663579034843721578::1685898240::1685898240::1::::<><>::
|
||||||
README.txt::TextFile::-1::1685898239::0::1::::<><>::
|
README.txt::TextFile::-1::1685898239::0::1::::<><>::
|
||||||
@ -37,19 +37,21 @@ LiberationSerif-BoldItalic.ttf::FontFile::6973589459942031632::1685898240::16858
|
|||||||
LiberationSerif-Italic.ttf::FontFile::3429051925918376143::1685898240::1685898240::1::::<><>::
|
LiberationSerif-Italic.ttf::FontFile::3429051925918376143::1685898240::1685898240::1::::<><>::
|
||||||
LiberationSerif-Regular.ttf::FontFile::3437532725077625275::1685898240::1685898240::1::::<><>::
|
LiberationSerif-Regular.ttf::FontFile::3437532725077625275::1685898240::1685898240::1::::<><>::
|
||||||
::res://databases/::1685898240
|
::res://databases/::1685898240
|
||||||
::res://Dialog/::1685898239
|
::res://Dialog/::1685900633
|
||||||
dialog_system.gd::GDScript::-1::1685898239::0::1::::<>Node<>::
|
dialog_system.gd::GDScript::-1::1685898239::0::1::::<>Node<>::
|
||||||
TestDialog.tscn::PackedScene::4730621496714883874::1685898239::0::1::::<><>::res://Dialog/dialog_system.gd
|
TestDialog.tscn::PackedScene::4730621496714883874::1685900633::0::1::::<><>::res://Dialog/dialog_system.gd
|
||||||
::res://GenresSubstitution/::1685898239
|
::res://GenresSubstitution/::1685900633
|
||||||
genre_sub.gd::GDScript::-1::1685898239::0::1::::<>Node<>::
|
genre_sub.gd::GDScript::-1::1685898239::0::1::::<>Node<>::
|
||||||
TestDB.tscn::PackedScene::3353206590719512815::1685898239::0::1::::<><>::res://GenresSubstitution/genre_sub.gd
|
TestDB.tscn::PackedScene::3353206590719512815::1685900633::0::1::::<><>::res://GenresSubstitution/genre_sub.gd
|
||||||
::res://GenresSubstitution/globalScripts/::1685898239
|
::res://GenresSubstitution/globalScripts/::1685898239
|
||||||
DiceRoller.gd::GDScript::-1::1685898239::0::1::::<>Control<>::
|
DiceRoller.gd::GDScript::-1::1685898239::0::1::::<>Control<>::
|
||||||
::res://Grammar/::1685898239
|
::res://Grammar/::1685900633
|
||||||
GrammarTest.gd::GDScript::-1::1685898239::0::1::::<>Node2D<>::
|
ExceptionsForA.json::JSON::-1::1685900554::0::1::::<><>::
|
||||||
GrammarTest.tscn::PackedScene::3628749051665588560::1685898239::0::1::::<><>::res://Grammar/GrammarTest.gd
|
ExceptionsForAn.json::JSON::-1::1685900489::0::1::::<><>::
|
||||||
::res://screens/::1685898240
|
GrammarTest.gd::GDScript::-1::1685900631::0::1::::<>Node2D<>::
|
||||||
MainMenu.tscn::PackedScene::8771866178020998753::1685898240::0::1::::<><>::
|
GrammarTest.tscn::PackedScene::3628749051665588560::1685900633::0::1::::<><>::res://Grammar/GrammarTest.gd
|
||||||
|
::res://screens/::1685900633
|
||||||
|
MainMenu.tscn::PackedScene::8771866178020998753::1685900633::0::1::::<><>::
|
||||||
::res://userInterface/::1685898240
|
::res://userInterface/::1685898240
|
||||||
But_ChangeScene.gd::GDScript::-1::1685898240::0::1::::<>RefCounted<>::
|
But_ChangeScene.gd::GDScript::-1::1685898240::0::1::::<>RefCounted<>::
|
||||||
But_ChangeScene.tscn::PackedScene::-1::1685898240::0::1::::<><>::res://UserInterface/But_ChangeScene.gd
|
But_ChangeScene.tscn::PackedScene::-1::1685898240::0::1::::<><>::res://UserInterface/But_ChangeScene.gd
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
res://Grammar/GrammarTest.tscn
|
res://Grammar/GrammarTest.tscn
|
||||||
res://Grammar/GrammarTest.gd
|
res://Grammar/GrammarTest.gd
|
||||||
|
res://Grammar/ExceptionsForAn.json
|
||||||
res://screens/MainMenu.tscn
|
res://screens/MainMenu.tscn
|
||||||
res://GenresSubstitution/TestDB.tscn
|
res://GenresSubstitution/TestDB.tscn
|
||||||
res://Dialog/TestDialog.tscn
|
res://Dialog/TestDialog.tscn
|
||||||
|
res://Grammar/ExceptionsForA.json
|
||||||
|
@ -10,7 +10,7 @@ run_reload_scripts=true
|
|||||||
[recent_files]
|
[recent_files]
|
||||||
|
|
||||||
scenes=["res://Grammar/GrammarTest.tscn", "res://Dialog/TestDialog.tscn", "res://GenresSubstitution/TestDB.tscn", "res://screens/MainMenu.tscn"]
|
scenes=["res://Grammar/GrammarTest.tscn", "res://Dialog/TestDialog.tscn", "res://GenresSubstitution/TestDB.tscn", "res://screens/MainMenu.tscn"]
|
||||||
scripts=["res://Grammar/GrammarTest.gd", "res://Dialog/dialog_system.gd", "res://GenresSubstitution/genre_sub.gd"]
|
scripts=["res://Grammar/ExceptionsForA.json", "res://Grammar/ExceptionsForAn.json", "res://Grammar/GrammarTest.gd", "res://Dialog/dialog_system.gd", "res://GenresSubstitution/genre_sub.gd"]
|
||||||
|
|
||||||
[script_setup]
|
[script_setup]
|
||||||
|
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
/home/luke/Documents/ProgrammingProjects/RPGv3/bcirpg/Phase2/Godot_Toolset/CodeSandboxes/ToolsetProjectTemplate/Grammar/
|
@ -3,11 +3,11 @@
|
|||||||
state={
|
state={
|
||||||
"bookmarks": PackedInt32Array(),
|
"bookmarks": PackedInt32Array(),
|
||||||
"breakpoints": PackedInt32Array(),
|
"breakpoints": PackedInt32Array(),
|
||||||
"column": 42,
|
"column": 30,
|
||||||
"folded_lines": Array[int]([]),
|
"folded_lines": Array[int]([]),
|
||||||
"h_scroll_position": 0,
|
"h_scroll_position": 0,
|
||||||
"row": 49,
|
"row": 135,
|
||||||
"scroll_position": 35.0,
|
"scroll_position": 36.0,
|
||||||
"selection": false,
|
"selection": false,
|
||||||
"syntax_highlighter": "GDScript"
|
"syntax_highlighter": "GDScript"
|
||||||
}
|
}
|
||||||
@ -19,9 +19,9 @@ state={
|
|||||||
"breakpoints": PackedInt32Array(),
|
"breakpoints": PackedInt32Array(),
|
||||||
"column": 51,
|
"column": 51,
|
||||||
"folded_lines": Array[int]([]),
|
"folded_lines": Array[int]([]),
|
||||||
"h_scroll_position": 117,
|
"h_scroll_position": 0,
|
||||||
"row": 77,
|
"row": 77,
|
||||||
"scroll_position": 49.0,
|
"scroll_position": 75.0,
|
||||||
"selection": false,
|
"selection": false,
|
||||||
"syntax_highlighter": "GDScript"
|
"syntax_highlighter": "GDScript"
|
||||||
}
|
}
|
||||||
@ -31,11 +31,39 @@ state={
|
|||||||
state={
|
state={
|
||||||
"bookmarks": PackedInt32Array(),
|
"bookmarks": PackedInt32Array(),
|
||||||
"breakpoints": PackedInt32Array(),
|
"breakpoints": PackedInt32Array(),
|
||||||
"column": 28,
|
"column": 25,
|
||||||
"folded_lines": Array[int]([]),
|
"folded_lines": Array[int]([]),
|
||||||
"h_scroll_position": 0,
|
"h_scroll_position": 0,
|
||||||
"row": 46,
|
"row": 78,
|
||||||
"scroll_position": 21.0,
|
"scroll_position": 72.0,
|
||||||
"selection": false,
|
"selection": false,
|
||||||
"syntax_highlighter": "GDScript"
|
"syntax_highlighter": "GDScript"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[res://Grammar/ExceptionsForAn.json]
|
||||||
|
|
||||||
|
state={
|
||||||
|
"bookmarks": PackedInt32Array(),
|
||||||
|
"breakpoints": PackedInt32Array(),
|
||||||
|
"column": 7,
|
||||||
|
"folded_lines": Array[int]([]),
|
||||||
|
"h_scroll_position": 0,
|
||||||
|
"row": 3,
|
||||||
|
"scroll_position": 0.0,
|
||||||
|
"selection": false,
|
||||||
|
"syntax_highlighter": "JSON"
|
||||||
|
}
|
||||||
|
|
||||||
|
[res://Grammar/ExceptionsForA.json]
|
||||||
|
|
||||||
|
state={
|
||||||
|
"bookmarks": PackedInt32Array(),
|
||||||
|
"breakpoints": PackedInt32Array(),
|
||||||
|
"column": 1,
|
||||||
|
"folded_lines": Array[int]([]),
|
||||||
|
"h_scroll_position": 0,
|
||||||
|
"row": 2,
|
||||||
|
"scroll_position": 0.0,
|
||||||
|
"selection": false,
|
||||||
|
"syntax_highlighter": "JSON"
|
||||||
|
}
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
[
|
||||||
|
"european"
|
||||||
|
]
|
@ -0,0 +1,5 @@
|
|||||||
|
[
|
||||||
|
"heir",
|
||||||
|
"hourglass",
|
||||||
|
"hour"
|
||||||
|
]
|
@ -1,10 +1,24 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
var an_data_file_path = "res://Grammar/ExceptionsForAn.json"
|
||||||
func _process(delta):
|
|
||||||
pass
|
var exceptionsListForAn = load_json(an_data_file_path)
|
||||||
|
|
||||||
|
var a_data_file_path = "res://Grammar/ExceptionsForA.json"
|
||||||
|
|
||||||
|
var exceptionsListForA = load_json(a_data_file_path)
|
||||||
|
|
||||||
|
func load_json(filePath : String):
|
||||||
|
if(FileAccess.file_exists(filePath)):
|
||||||
|
|
||||||
|
var dataFile = FileAccess.open(filePath, FileAccess.READ)
|
||||||
|
var parsedResult = JSON.parse_string(dataFile.get_as_text())
|
||||||
|
|
||||||
|
if parsedResult is Array:
|
||||||
|
return parsedResult
|
||||||
|
else:
|
||||||
|
print("Error Reading File")
|
||||||
|
|
||||||
|
|
||||||
#rebuild_sentence is here to assist with making a human readable sentence, out of the array created in correct_sentence.
|
#rebuild_sentence is here to assist with making a human readable sentence, out of the array created in correct_sentence.
|
||||||
@ -43,9 +57,6 @@ func correct_sentence(input_string: String) -> String:
|
|||||||
var words = input_string.split(" ")
|
var words = input_string.split(" ")
|
||||||
var newWords = words
|
var newWords = words
|
||||||
var articleList = ["a", "an", "A", "An"]
|
var articleList = ["a", "an", "A", "An"]
|
||||||
var exceptionsListForAn = ""
|
|
||||||
var exceptionsListForA = ""
|
|
||||||
var exceptionsList = ["hour"]
|
|
||||||
|
|
||||||
# One Potential Addition, could be that we make an exception list for words that should be prefixed with A, and another one for words that should be prefixed with An
|
# One Potential Addition, could be that we make an exception list for words that should be prefixed with A, and another one for words that should be prefixed with An
|
||||||
|
|
||||||
@ -60,8 +71,10 @@ func correct_sentence(input_string: String) -> String:
|
|||||||
|
|
||||||
if current_word != last_word:
|
if current_word != last_word:
|
||||||
if articleList.has(last_word):
|
if articleList.has(last_word):
|
||||||
if first_character.match("[aeiouAEIOU]") or exceptionsList.has(last_word):
|
if first_character.match("[aeiouAEIOU]") or exceptionsListForAn.has(last_word):
|
||||||
newWords[i-1] = "an"
|
newWords[i-1] = "an"
|
||||||
|
if exceptionsListForA.has(last_word):
|
||||||
|
newWords[i-1] = "a"
|
||||||
else:
|
else:
|
||||||
newWords[i-1] = "a"
|
newWords[i-1] = "a"
|
||||||
|
|
||||||
@ -69,8 +82,10 @@ func correct_sentence(input_string: String) -> String:
|
|||||||
if words[0] != words[1]:
|
if words[0] != words[1]:
|
||||||
if articleList.has(words[0]):
|
if articleList.has(words[0]):
|
||||||
var nextWordFirstChar = words[1].substr(0, 1).to_lower()
|
var nextWordFirstChar = words[1].substr(0, 1).to_lower()
|
||||||
if nextWordFirstChar.match("[aeiouAEIOU]") or exceptionsList.has(words[1]):
|
if nextWordFirstChar.match("[aeiouAEIOU]") or exceptionsListForAn.has(words[1]):
|
||||||
newWords[0] = "An"
|
newWords[0] = "An"
|
||||||
|
if exceptionsListForA.has(words[1]):
|
||||||
|
newWords[0] = "A"
|
||||||
else:
|
else:
|
||||||
newWords[0] = "A"
|
newWords[0] = "A"
|
||||||
|
|
||||||
@ -80,4 +95,8 @@ func correct_sentence(input_string: String) -> String:
|
|||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
print(correct_sentence("Eating seeds as an passtime activity..."))
|
print(correct_sentence("A heir and a hourglass to go to the throne"))
|
||||||
|
print(correct_sentence("An european country."))
|
||||||
|
print(correct_sentence("A heir"))
|
||||||
|
print(correct_sentence("a hour"))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user