用户工具

站点工具


zh:courses:textmining2026:ch02

这是本文档旧的修订版!


第二章:Java文本处理基础

课件

下载:Java文本处理基础

第三方库依赖

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>3.8.1</version>
	<scope>test</scope>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-simple</artifactId>
	<version>2.0.18</version>
</dependency>
<dependency>
	<groupId>org.apache.opennlp</groupId>
	<artifactId>opennlp-tools</artifactId>
	<version>2.3.0</version>
</dependency>
<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-lang3</artifactId>
	<version>3.12.0</version>
</dependency>
<dependency>
	<groupId>commons-io</groupId>
	<artifactId>commons-io</artifactId>
	<version>2.11.0</version>
</dependency>
<dependency>
	<groupId>org.jsoup</groupId>
	<artifactId>jsoup</artifactId>
	<version>1.22.2</version>
</dependency>
<dependency>
	<groupId>org.apache.lucene</groupId>
	<artifactId>lucene-core</artifactId>
	<version>8.11.2</version>
</dependency>
<dependency>
	<groupId>org.apache.lucene</groupId>
	<artifactId>lucene-analyzers-common</artifactId>
	<version>8.11.2</version>
</dependency>

String与StringBuilder类对比

StringBuilderDemo.java
package cn.edu.bjut.textmining.chapter2;
 
import java.util.Arrays;
import java.util.List;
 
public class StringBuilderDemo {
    public static void main(String[] args) {
        List<String> lines = Arrays.asList("Text", "mining", "with", "Java");
 
        String content = "";
        for (String line : lines) {
            content += line + " "; 
        }
        System.out.println(content.trim());
 
        StringBuilder buffer = new StringBuilder();
        for (String line : lines) {
            buffer.append(line).append(" ");
        }
        String finalContent = buffer.toString().trim();
        System.out.println(finalContent);
 
        String joinedContent = String.join(" ", lines); 
        System.out.println(joinedContent);
    }
}

正则表达式

RegexDemo.java
package cn.edu.bjut.textmining.chapter2;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class RegexDemo {
    public static void main(String[] args) {
        String rawText = "联系人: 李四, 电话: 138-1234-5678, 邮箱: lisi@company.com; "
                + "联系人: 张三, 电话: 159-0000-1111, 邮箱: zhangsan@university.edu.cn";
 
        extractInfo("手机号", "\\d{3}-\\d{4}-\\d{4}", rawText);
        extractInfo("邮箱", "[\\w\\.-]+@[\\w\\.-]+\\.[a-zA-Z]{2,}", rawText);
    }
 
    private static void extractInfo(String type, String regex, String content) {
        System.out.println("--- 提取 " + type + " ---");
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            System.out.println("找到: " + matcher.group()
                    + " (位置: " + matcher.start() + "-" + matcher.end() + ")");
        }
    }
}

Java类库中的文本处理工具

评论

请输入您的评论. 可以使用维基语法:
86 +1 =
 
zh/courses/textmining2026/ch02.1788665702.txt.gz · 最后更改: 2026/09/06 11:35 由 pzczxs