ExpressionService
in package
Service class for multi-word expression handling.
Contains functions for finding and inserting multi-word expressions, including MeCab integration for Japanese text processing.
Tags
Table of Contents
Properties
Methods
- __construct() : mixed
- Constructor - initialize dependencies.
- findMecabExpression() : array<int, array{SeID: int, TxID: int, position: int, term: string}>
- Find all occurrences of an expression using MeCab.
- findStandardExpression() : array<int, array{SeID: int, SeTxID: int, position: int, term: ?string, term_display: ?string}>
- Find all occurrences of an expression, do not use parsers like MeCab.
-
insertExpressions()
: array{placeholders: list
, params: list}|null - Alter the database to add a new word.
- newExpressionInteractable2() : void
- Prepare a JavaScript dialog to insert a new expression (version 2).
- newMultiWordInteractable() : void
- Prepare a JavaScript dialog to insert a new expression.
Properties
$textParsingService
private
TextParsingService
$textParsingService
Methods
__construct()
Constructor - initialize dependencies.
public
__construct([TextParsingService|null $textParsingService = null ]) : mixed
Parameters
- $textParsingService : TextParsingService|null = null
-
Text parsing service (optional for BC)
findMecabExpression()
Find all occurrences of an expression using MeCab.
public
findMecabExpression(string $text, string|int $lid) : array<int, array{SeID: int, TxID: int, position: int, term: string}>
Parameters
- $text : string
-
Text to insert
- $lid : string|int
-
Language ID
Return values
array<int, array{SeID: int, TxID: int, position: int, term: string}>findStandardExpression()
Find all occurrences of an expression, do not use parsers like MeCab.
public
findStandardExpression(string $textlc, string|int $lid) : array<int, array{SeID: int, SeTxID: int, position: int, term: ?string, term_display: ?string}>
Parameters
- $textlc : string
-
Text to insert in lower case
- $lid : string|int
-
Language ID
Return values
array<int, array{SeID: int, SeTxID: int, position: int, term: ?string, term_display: ?string}>insertExpressions()
Alter the database to add a new word.
public
insertExpressions(string $textlc, int $lid, int $wid, int $len, int $mode) : array{placeholders: list, params: list}|null
Parameters
- $textlc : string
-
Text in lower case
- $lid : int
-
Language ID
- $wid : int
-
Word ID
- $len : int
-
Number of words in the expression
- $mode : int
-
Function mode
- 0: Default mode, do nothing special
- 1: Runs an expression inserter interactable
- 2: Return prepared statement data for batch insert
Return values
array{placeholders: listIf $mode == 2 returns array with placeholders and params for prepared statement, null otherwise.
newExpressionInteractable2()
Prepare a JavaScript dialog to insert a new expression (version 2).
public
newExpressionInteractable2(string $hex, array<string|int, string> $appendtext, int $wid, int $len) : void
Parameters
- $hex : string
-
Lowercase text, formatted version of the text.
- $appendtext : array<string|int, string>
-
Text to append
- $wid : int
-
Term ID
- $len : int
-
Words count.
newMultiWordInteractable()
Prepare a JavaScript dialog to insert a new expression.
public
newMultiWordInteractable(string $hex, array<int, array<int, string>> $multiwords, int $wid, int $len) : void
Parameters
- $hex : string
-
Lowercase text, formatted version of the text.
- $multiwords : array<int, array<int, string>>
-
Multi-words to append, format [textid][position][text]
- $wid : int
-
Term ID
- $len : int
-
Words count.