调整 WEKA 的 arff 文件格式



我想对包含 2000 行的 Weka arff 文件进行预处理 对于NLP项目(情感分析)

我想要一个代码,在每个句子的开头和结尾添加一个引号。 例如,这是我的数据集的示例:

The Da Vinci Code is one of the most beautiful movies ive ever seen.,1
The Da Vinci Code is an * amazing * book, do not get me wrong.,1
then I turn on the light and the radio and enjoy my Da Vinci Code.,1
The Da Vinci Code was REALLY good.,1
i love da vinci code....,1 

我希望输出为:

'The Da Vinci Code is one of the most beautiful movies ive ever seen.',1
'The Da Vinci Code is an * amazing * book, do not get me wrong.',1
'then I turn on the light and the radio and enjoy my Da Vinci Code.',1
'The Da Vinci Code was REALLY good.',1
'i love da vinci code....',1 

只想在每个句子的开头和结尾(1 之前)添加一个引号。

如果您帮助我做到这一点,我将不胜感激

有没有可以用来代替编写代码的工具?

您可以使用正则表达式来实现此目的。正则表达式是字符串中模式匹配的强大形式。大量现有工具支持正则表达式,它允许您匹配/替换所需的文本,而无需自己编写任何代码。

要使用正则表达式 (regexp) 进行匹配和替换,您需要两个部分:

匹配
  1. :用于匹配字符串中的某些内容的表达式。
  2. 替换
  3. /替换:指示要替换的内容的表达式 匹配。

火柴:

/([^.]+)(.+)(,1s+)/g
  • 组 1:匹配除文字点之外的所有字符,至少 1 个 字符。
  • 第 2 组:仅匹配文字点,至少 1 个字符。
  • 组 3:匹配文本逗号,后跟文本 1,后跟 至少 1 个空格字符。
  • 正则表达式标志g(全局):多个匹配项

替代:

'$1$2'$3
  • 用引号将组 1 和 2 括起来,后跟组 3。

您可以在此处查看上述匹配和替换的交互式版本

现在,您可以使用该匹配和替换来使用您喜欢的正则表达式工具。

喜欢 sed:

sed -i -E "s/([^.]+)(.+)(,1s+)/'12'3/g" yourfile.txt

或Windows PowerShell:

(Get-Content yourfile.txt) -replace '([^.]+)(.+)(,1s+)', '''$1$2''$3' | Out-File output.txt

其他工具可能使用不同的语法。提供的匹配/替换模式可能可以进一步优化。

最新更新