You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从输入文件提取含单词与双词的多字段结构化输入?

解决Session条目多词电影名提取问题

你遇到的核心痛点很明确——Session条目的电影名可能是单词也可能是多词组合,常规按固定索引拆分的方法只能拿到单词,没法覆盖多词场景。这里给你几个实用的解决思路,核心逻辑都是“前三个字段固定,剩余所有内容合并为电影名”:


方法1:基于标识边界的逐段提取

如果你的输入是一个连续的字符串/令牌列表,可以先遍历所有内容,遇到Session标识时,先提取前三个固定字段,再收集后续内容直到碰到下一个命令标识(比如Cinema、Request这些),最后把收集到的内容拼接成完整电影名。

用Python举个实际处理的例子:

# 假设已经把输入内容按空格拆分成了令牌列表
tokens = ["Cinema", "1", "A", "15", "Cinema", "2", "X", "5", 
          "Session", "1", "09:00", "Toy", "Story", 
          "Session", "1", "14:30", "Ratatouille", 
          "Session", "2", "09:00", "Up", 
          "Request", "1", "1", "09:00", "10", ...]

i = 0
while i < len(tokens):
    if tokens[i] == "Session":
        # 提取固定字段:影院编号、场次时间
        cinema_id = tokens[i+1]
        session_time = tokens[i+2]
        # 收集后续所有内容,直到碰到下一个命令标识
        movie_parts = []
        j = i + 3
        while j < len(tokens) and tokens[j] not in ["Cinema", "Request", "Change", "Cancel", "Print"]:
            movie_parts.append(tokens[j])
            j += 1
        # 拼接成完整电影名
        movie_name = " ".join(movie_parts)
        print(f"场次信息:影院{cinema_id} {session_time} | 电影:{movie_name}")
        # 直接跳到下一个命令的起始位置
        i = j
    else:
        # 处理其他类型条目,或者直接跳过
        i += 1

这个方法能精准识别电影名的边界,不管电影名有多少个单词都能完整提取。


方法2:按条目分行的快速处理

如果你的输入是按条目分行存储的(比如每个Session/Request各占一行),处理起来会更简单:对每一行拆分后,直接取前三个元素之后的所有内容拼接成电影名。

示例代码:

input_lines = [
    "Cinema 1 A 15",
    "Cinema 2 X 5",
    "Session 1 09:00 Toy Story",
    "Session 1 14:30 Ratatouille",
    "Session 2 09:00 Up",
    "Request 1 1 09:00 10",
    ...
]

for line in input_lines:
    parts = line.split()
    if parts[0] == "Session":
        cinema_id = parts[1]
        session_time = parts[2]
        # 从第四个元素开始,所有内容都是电影名
        movie_name = " ".join(parts[3:])
        print(f"提取结果:{cinema_id}号影院 {session_time} - {movie_name}")

这种方式代码更简洁,适合输入格式规整、按条目分行的场景。


核心思路总结

本质上就是放弃“固定索引取最后一项”的思维,换成:

  1. 先定位Session条目的起始标识
  2. 提取前三个固定字段(Session、影院号、时间)
  3. 将剩余的所有内容合并为电影名,不管单词数量

这样就能同时适配单词(如Up)和多词(如Toy Story)的电影名了。

内容的提问来源于stack exchange,提问作者Utkarsh Atri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:58:30