Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mathieu Loiseau
MagicWord
Commits
00e88172
Commit
00e88172
authored
May 22, 2019
by
Sylvain Hatier
Committed by
Arnaud Bey
Jul 19, 2019
Browse files
Fix Bigram Min
parent
c4b75b9f
Changes
2
Hide whitespace changes
Inline
Side-by-side
application/src/MagicWordBundle/Command/GenerateGridCommand.php
View file @
00e88172
...
...
@@ -16,7 +16,8 @@ class GenerateGridCommand extends ContainerAwareCommand
->
setDescription
(
'generate grids'
)
->
addArgument
(
'languageName'
,
InputArgument
::
REQUIRED
)
->
addArgument
(
'number'
,
InputArgument
::
REQUIRED
)
->
addArgument
(
'threshold'
,
InputArgument
::
OPTIONAL
);
->
addArgument
(
'threshold'
,
InputArgument
::
OPTIONAL
)
->
addArgument
(
'minBigram'
,
InputArgument
::
OPTIONAL
);
}
protected
function
execute
(
InputInterface
$input
,
OutputInterface
$output
)
...
...
@@ -28,17 +29,19 @@ class GenerateGridCommand extends ContainerAwareCommand
$number
=
$input
->
getArgument
(
'number'
);
$languageName
=
$input
->
getArgument
(
'languageName'
);
$threshold
=
$input
->
getArgument
(
'threshold'
);
$minBigram
=
$input
->
getArgument
(
'minBigram'
);
$totalFormCount
=
0
;
$totalFormCountAll
=
0
;
$keptGrid
=
0
;
$allGrid
=
0
;
$best
=
0
;
$worst
=
1000
;
$minBigram
=
(
!
$minBigram
)
?
null
:
$minBigram
;
while
(
$keptGrid
<
$number
)
{
$language
=
$em
->
getRepository
(
'LexiconBundle:Language'
)
->
findOneByValue
(
$languageName
);
$timeStart
=
microtime
(
true
);
$grid
=
$gridManager
->
generate
(
$language
,
true
);
$grid
=
$gridManager
->
generate
(
$language
,
true
,
$minBigram
);
$timeEnd
=
microtime
(
true
);
$executionTime
=
round
(
$timeEnd
-
$timeStart
,
2
);
$formCount
=
$grid
->
getFoundableForms
()
?
count
(
$grid
->
getFoundableForms
())
:
0
;
...
...
application/src/MagicWordBundle/Manager/GridManager.php
View file @
00e88172
...
...
@@ -45,11 +45,11 @@ class GridManager
}
public
function
generate
(
Language
$language
,
$debug
=
false
)
public
function
generate
(
Language
$language
,
$debug
=
false
,
$minBigram
=
null
)
{
$grid
=
$this
->
newGrid
(
$language
,
4
);
$letters
=
$this
->
lottery
(
$language
,
4
,
$debug
);
$minBigram
=
(
$minBigram
==
null
)
?
$language
->
getMinBigram
()
:
$minBigram
;
$letters
=
$this
->
lottery
(
$language
,
4
,
$debug
,
$minBigram
);
if
(
$debug
===
true
)
{
echo
"
\n
letters: "
;
...
...
@@ -347,8 +347,10 @@ class GridManager
return
;
}
public
function
lottery
(
Language
$language
,
$side
,
$debug
=
false
)
public
function
lottery
(
Language
$language
,
$side
,
$debug
=
false
,
$minBigram
=
null
)
{
$minBigram
=
(
$minBigram
==
null
)
?
$language
->
getMinBigram
()
:
$minBigram
;
$fileBigrams
=
$language
->
getDirectory
()
.
DIRECTORY_SEPARATOR
.
"bigrams.txt"
;
// On crée un tableau de bigrammes
// où chaque bigramme apparait autant de fois que son poids
...
...
@@ -361,7 +363,6 @@ class GridManager
$string
=
$tab
[
0
];
$freqBigramBi
=
$tab
[
1
];
$poids
=
$tab
[
3
];
$minBigram
=
$language
->
getMinBigram
();
//si Freq du bigram et son inverse est < à min défini par user alors on le prend pas en compte
if
(
$freqBigramBi
>
$minBigram
)
{
$bigramLetters
=
preg_split
(
'//u'
,
$string
,
null
,
PREG_SPLIT_NO_EMPTY
);
...
...
Write
Preview
Supports
Markdown
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