如何使用 java 清除脏文本
How to clean dirty text using java
我正在从 Twitter 收集数据并对其进行处理,但我遇到的问题是:文字不干净,
示例:
String dirtyText="this*is#a*&very_dirty&String";
示例:
String dirtyText="All f dis happnd bcause u gave ur time, talent n passion.";
我希望它尽可能简单。
这不是一个容易解决的问题。 All f dis happnd
可以是 "cleaned" 以产生 All *of* this happened
或 All *if* this happened
。对于第一个示例,您可以仅将所有非字母字符替换为空格。请参阅 this question 了解如何执行此操作。
否则我认为您需要一个自然语言处理器,或者至少需要一个拼写检查器。要用正确的英语猜测一条推文应该是什么是一个极其复杂的问题。查看 Jazzy 的开源拼写检查器。
public class CleaningDirtText {
/*
* 删除前导和尾随空格,并将我们的单词拆分为一个字符串数组。
* split 方法允许您在给定的分隔符上拆分文本。在这个
* 情况下,我们选择使用正则表达式 \W,它代表任何东西
* 这不是一个单词字符:
/
private static final String dirtyText = "thisis#a*&very_dirty&String";
public static void main(String[] args) {
System.out.println(dirtyText);
String[] words = dirtyText.toLowerCase().trim().split("[\W\d]+");
// System.out.println(preparedText);
//String[] cleanText = dirtyText.toLowerCase().trim().split("[\W]+");
for (String clean : words) {
System.out.print(clean + " ");
}
}
}
public class CleaningDirtText {
private static final String dirtyText = "thisis#a&very_dirty&String";
public static void main(String[] args) {
/*
* remove leading and trailing spaces, and split our words into a String array.
* The split method allows you to break apart text on a given delimiter. In this
* case, we chose to use the regular expression \W, which represents anything
* that is not a word character:
*/
System.out.println(dirtyText);
String[] words = dirtyText.toLowerCase().trim().split("[\W\d]+");
for (int i = 0; i < words.length; i++) {
System.out.print(words[i]);
}
System.out.println("\nsee the cleand text:-");
for (String clean : words) {
System.out.print(clean + " ");
}
}
}
我正在从 Twitter 收集数据并对其进行处理,但我遇到的问题是:文字不干净,
示例:
String dirtyText="this*is#a*&very_dirty&String";
示例:
String dirtyText="All f dis happnd bcause u gave ur time, talent n passion.";
我希望它尽可能简单。
这不是一个容易解决的问题。 All f dis happnd
可以是 "cleaned" 以产生 All *of* this happened
或 All *if* this happened
。对于第一个示例,您可以仅将所有非字母字符替换为空格。请参阅 this question 了解如何执行此操作。
否则我认为您需要一个自然语言处理器,或者至少需要一个拼写检查器。要用正确的英语猜测一条推文应该是什么是一个极其复杂的问题。查看 Jazzy 的开源拼写检查器。
public class CleaningDirtText { /* * 删除前导和尾随空格,并将我们的单词拆分为一个字符串数组。 * split 方法允许您在给定的分隔符上拆分文本。在这个 * 情况下,我们选择使用正则表达式 \W,它代表任何东西 * 这不是一个单词字符: / private static final String dirtyText = "thisis#a*&very_dirty&String";
public static void main(String[] args) {
System.out.println(dirtyText);
String[] words = dirtyText.toLowerCase().trim().split("[\W\d]+");
// System.out.println(preparedText);
//String[] cleanText = dirtyText.toLowerCase().trim().split("[\W]+");
for (String clean : words) {
System.out.print(clean + " ");
}
}
}
public class CleaningDirtText { private static final String dirtyText = "thisis#a&very_dirty&String";
public static void main(String[] args) {
/*
* remove leading and trailing spaces, and split our words into a String array.
* The split method allows you to break apart text on a given delimiter. In this
* case, we chose to use the regular expression \W, which represents anything
* that is not a word character:
*/
System.out.println(dirtyText);
String[] words = dirtyText.toLowerCase().trim().split("[\W\d]+");
for (int i = 0; i < words.length; i++) {
System.out.print(words[i]);
}
System.out.println("\nsee the cleand text:-");
for (String clean : words) {
System.out.print(clean + " ");
}
}
}